🔍 s&box Package Code Search
Search C# source code, UI razor templates, shaders, and configs across s&box packages.
🔗 Raw Facepunch API Link: https://public.facepunch.com/sbox/code/search/1/?ident=nolankicks.kickscomponents&take=20
Showing code results for query:
*
(8 total matches found)
Game
library
using Sandbox;
public sealed class SceneTrigger : Component, Component.ITriggerListener
{
[Property] public SceneFile SceneFile { get; set; }
protected override void OnUpdate()
{
}
void ITriggerListener.OnTriggerEnter(Sandbox.Collider other)
{
if (other.GameObject.Parent.Tags.Has("player") || other.GameObject.Tags.Has("boat"))
{
Game.ActiveScene.Load(SceneFile);
}
}
void ITriggerListener.OnTriggerExit(Sandbox.Collider other)
{
}
}
Game
library
using Sandbox;
using System;
[Icon("shuffle")]
public sealed class RandomMaterialGroup : Component
{
public ModelRenderer Renderer { get; set; }
protected override void OnStart()
{
Components.TryGet<ModelRenderer>(out var modelRenderer, FindMode.InSelf);
if (modelRenderer is not null)
{
Renderer = modelRenderer;
}
if (Renderer is not null)
{
SetRandomMaterial(Renderer);
}
}
public void SetRandomMaterial(ModelRenderer renderer)
{
if (renderer is null) return;
var materialsCount = renderer.Model.MaterialGroupCount;
if (materialsCount == 0) return;
var randomMaterialIndex = Random.Shared.Int(0, materialsCount - 1);
var materialGroup = renderer.Model.GetMaterialGroupName(randomMaterialIndex);
renderer.MaterialGroup = materialGroup;
}
}
UnitTest
library
global using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class TestInit
{
[AssemblyInitialize]
public static void ClassInitialize( TestContext context )
{
Sandbox.Application.InitUnitTest();
}
}
Game
library
using System;
using Sandbox;
using Sandbox.Utility;
[Icon("waves"), Category("Post Processing")]
public sealed class Postprocess : PostProcess, Component.ExecuteInEditor
{
[Property] public Shader PostprocessShader { get; set; }
IDisposable renderHook;
protected override void OnEnabled()
{
renderHook = Camera.AddHookBeforeOverlay( "My Post Processing", 1000, RenderEffect);
}
protected override void OnDisabled()
{
renderHook?.Dispose();
renderHook = null;
}
RenderAttributes attributes = new RenderAttributes();
public void RenderEffect(SceneCamera camera)
{
if (!camera.EnablePostProcessing) return;
Graphics.GrabFrameTexture("ColorBuffer", attributes);
Graphics.Blit(Material.FromShader(PostprocessShader), attributes);
}
}
Game
library
using System.Collections.Generic;
using Sandbox;
[Icon("shuffle"), Description("Contains a function that drops a random item from a list of GameObjects, call DropRandomItem() to drop a random item")]
public sealed class RandomItemDrop : Sandbox.Component
{
[Property] public List<GameObject> RandomItems { get; set; } = new();
public void DropRandomItem()
{
if (RandomItems.Count == 0) return;
var randomItem = Game.Random.FromList(RandomItems);
if (randomItem is not null)
{
var item = randomItem.Clone();
item.Transform.Position = Transform.Position + Vector3.Up * 20;
item.Transform.Rotation = Transform.Rotation;
item.NetworkSpawn();
}
}
}
Game
library
using Sandbox;
using System;
using System.Collections.Generic;
[Icon("shuffle")]
public sealed class RandomModel : Component
{
[Property] public List<Model> RandomModels { get; set; }
protected override void OnStart()
{
if (RandomModels.Count == 0) return;
Components.TryGet<ModelRenderer>(out var modelRenderer, FindMode.InSelf);
Components.TryGet<ModelCollider>(out var modelCollider, FindMode.InSelf);
var selectedModel = Game.Random.FromList(RandomModels);
if (selectedModel is null) return;
if (modelRenderer is not null)
{
modelRenderer.Model = selectedModel;
}
if (modelCollider is not null)
{
modelCollider.Model = selectedModel;
}
}
}
UnitTest
library
using Sandbox;
[TestClass]
public partial class LibraryTests
{
[TestMethod]
public void SceneTest()
{
var scene = new Scene();
using ( scene.Push() )
{
var go = new GameObject();
Assert.AreEqual( 1, scene.Directory.GameObjectCount );
}
}
}
Game
library
using System.ComponentModel;
using Sandbox;
public sealed class NavMeshComponent : Sandbox.Component
{
[Property] public NavMeshAgent Agent { get; set; }
[Property] public GameObject Target { get; set; }
protected override void OnFixedUpdate()
{
MoveToTarget();
}
void MoveToTarget()
{
if (Agent is null || Target is null) return;
Agent.MoveTo(Target.Transform.Position);
}
}
Debug: View Raw JSON Response
{
"TotalCount": 8,
"Files": [
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/SceneTrigger.cs",
"FileName": "SceneTrigger.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using Sandbox;\r\n\r\npublic sealed class SceneTrigger : Component, Component.ITriggerListener\r\n{\r\n\t[Property] public SceneFile SceneFile { get; set; }\r\n\tprotected override void OnUpdate()\r\n\t{\r\n\r\n\t}\r\n\r\n\tvoid ITriggerListener.OnTriggerEnter(Sandbox.Collider other)\r\n\t{\r\n\t\tif (other.GameObject.Parent.Tags.Has(\"player\") || other.GameObject.Tags.Has(\"boat\"))\r\n\t\t{\r\n\t\t\tGame.ActiveScene.Load(SceneFile);\r\n\t\t}\r\n\t}\r\n\r\n\tvoid ITriggerListener.OnTriggerExit(Sandbox.Collider other)\r\n\t{\r\n\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/RandomMaterialGroup.cs",
"FileName": "RandomMaterialGroup.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using Sandbox;\r\nusing System;\r\n[Icon(\"shuffle\")]\r\npublic sealed class RandomMaterialGroup : Component\r\n{\r\n\tpublic ModelRenderer Renderer { get; set; }\r\n\tprotected override void OnStart()\r\n\t{\r\n\t\tComponents.TryGet<ModelRenderer>(out var modelRenderer, FindMode.InSelf);\r\n\t\tif (modelRenderer is not null)\r\n\t\t{\r\n\t\t\tRenderer = modelRenderer;\r\n\t\t}\r\n\t\tif (Renderer is not null)\r\n\t\t{\r\n\t\t\tSetRandomMaterial(Renderer);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic void SetRandomMaterial(ModelRenderer renderer)\r\n\t{\r\n\t\tif (renderer is null) return;\r\n\t\tvar materialsCount = renderer.Model.MaterialGroupCount;\r\n\t\tif (materialsCount == 0) return;\r\n\t\tvar randomMaterialIndex = Random.Shared.Int(0, materialsCount - 1);\r\n\t\tvar materialGroup = renderer.Model.GetMaterialGroupName(randomMaterialIndex);\r\n\t\trenderer.MaterialGroup = materialGroup;\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "UnitTests/UnitTest.cs",
"FileName": "UnitTest.cs",
"PackageType": "library",
"CodeKind": "UnitTest",
"AssetVersionId": 56965,
"Code": "global using Microsoft.VisualStudio.TestTools.UnitTesting;\r\n\r\n[TestClass]\r\npublic class TestInit\r\n{\r\n\t[AssemblyInitialize]\r\n\tpublic static void ClassInitialize( TestContext context )\r\n\t{\r\n\t\tSandbox.Application.InitUnitTest();\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/Postprocess.cs",
"FileName": "Postprocess.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using System;\r\nusing Sandbox;\r\nusing Sandbox.Utility;\r\n[Icon(\"waves\"), Category(\"Post Processing\")]\r\npublic sealed class Postprocess : PostProcess, Component.ExecuteInEditor\r\n{\r\n\t[Property] public Shader PostprocessShader { get; set; }\r\n\tIDisposable renderHook;\r\n\r\n\tprotected override void OnEnabled()\r\n\t{\r\n\t\trenderHook = Camera.AddHookBeforeOverlay( \"My Post Processing\", 1000, RenderEffect);\r\n\t}\r\n\tprotected override void OnDisabled()\r\n\t{\r\n\t\trenderHook?.Dispose();\r\n\t\trenderHook = null;\r\n\t}\r\n\tRenderAttributes attributes = new RenderAttributes();\r\n\tpublic void RenderEffect(SceneCamera camera)\r\n\t{\r\n\t\tif (!camera.EnablePostProcessing) return;\r\n\t\tGraphics.GrabFrameTexture(\"ColorBuffer\", attributes);\r\n\t\tGraphics.Blit(Material.FromShader(PostprocessShader), attributes);\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/RandomItemDrop.cs",
"FileName": "RandomItemDrop.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using System.Collections.Generic;\r\nusing Sandbox;\r\n[Icon(\"shuffle\"), Description(\"Contains a function that drops a random item from a list of GameObjects, call DropRandomItem() to drop a random item\")]\r\npublic sealed class RandomItemDrop : Sandbox.Component\r\n{\r\n\t[Property] public List<GameObject> RandomItems { get; set; } = new();\r\n\r\n\tpublic void DropRandomItem()\r\n\t{\r\n\t\tif (RandomItems.Count == 0) return;\r\n\t\tvar randomItem = Game.Random.FromList(RandomItems);\r\n\t\tif (randomItem is not null)\r\n\t\t{\r\n\t\t\tvar item = randomItem.Clone();\r\n\t\t\titem.Transform.Position = Transform.Position + Vector3.Up * 20;\r\n\t\t\titem.Transform.Rotation = Transform.Rotation;\r\n\t\t\titem.NetworkSpawn();\r\n\t\t}\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/RandomModel.cs",
"FileName": "RandomModel.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using Sandbox;\r\nusing System;\r\nusing System.Collections.Generic;\r\n[Icon(\"shuffle\")]\r\npublic sealed class RandomModel : Component\r\n{\r\n\t[Property] public List<Model> RandomModels { get; set; }\r\n\tprotected override void OnStart()\r\n\t{\r\n\t\tif (RandomModels.Count == 0) return;\r\n\t\tComponents.TryGet<ModelRenderer>(out var modelRenderer, FindMode.InSelf);\r\n\t\tComponents.TryGet<ModelCollider>(out var modelCollider, FindMode.InSelf);\r\n\t\tvar selectedModel = Game.Random.FromList(RandomModels);\r\n\t\tif (selectedModel is null) return;\r\n\t\tif (modelRenderer is not null)\r\n\t\t{\r\n\t\t\tmodelRenderer.Model = selectedModel;\r\n\t\t}\r\n\t\tif (modelCollider is not null)\r\n\t\t{\r\n\t\t\tmodelCollider.Model = selectedModel;\r\n\t\t}\r\n\t}\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "UnitTests/LibraryTest.cs",
"FileName": "LibraryTest.cs",
"PackageType": "library",
"CodeKind": "UnitTest",
"AssetVersionId": 56965,
"Code": "using Sandbox;\r\n\r\n[TestClass]\r\npublic partial class LibraryTests\r\n{\r\n\t[TestMethod]\r\n\tpublic void SceneTest()\r\n\t{\r\n\t\tvar scene = new Scene();\r\n\t\tusing ( scene.Push() )\r\n\t\t{\r\n\t\t\tvar go = new GameObject();\r\n\r\n\t\t\tAssert.AreEqual( 1, scene.Directory.GameObjectCount );\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"
},
{
"Ident": "nolankicks.kickscomponents",
"Path": "Code/NavMeshComponent.cs",
"FileName": "NavMeshComponent.cs",
"PackageType": "library",
"CodeKind": "Game",
"AssetVersionId": 56965,
"Code": "using System.ComponentModel;\r\nusing Sandbox;\r\n\r\npublic sealed class NavMeshComponent : Sandbox.Component\r\n{\r\n\t[Property] public NavMeshAgent Agent { get; set; }\r\n\t[Property] public GameObject Target { get; set; }\r\n\r\n\tprotected override void OnFixedUpdate()\r\n\t{\r\n\t\tMoveToTarget();\r\n\t}\r\n\r\n\tvoid MoveToTarget()\r\n\t{\r\n\t\tif (Agent is null || Target is null) return;\r\n\t\tAgent.MoveTo(Target.Transform.Position);\r\n\t}\r\n}\r\n"
}
]
}