🔍 s&box Package Code Search

Search C# source code, UI razor templates, shaders, and configs across s&box packages.

Showing code results for query: * (7 total matches found)
harper.topdownplayercontroller / UnitTests/LibraryTest.cs
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 );
		}
	}

}
harper.topdownplayercontroller / .obj/__compiler_extra.cs
Game library
global using static Sandbox.Internal.GlobalGameNamespace;
[assembly: global::System.Reflection.AssemblyMetadata( "AddonTitle", "Top Down Player Controller" )]
[assembly: global::System.Reflection.AssemblyMetadata( "AddonIdent", "topdownplayercontroller" )]
[assembly: global::System.Reflection.AssemblyMetadata( "OrgIdent", "harper" )]
[assembly: global::System.Reflection.AssemblyMetadata( "Ident", "harper.topdownplayercontroller" )]
[assembly: global::System.Reflection.AssemblyMetadata( "CompileTime", "8/28/2024 10:44:44 PM" )]
[assembly: global::System.Reflection.AssemblyMetadata( "EngineVersion", "17" )]
[assembly: global::System.Reflection.AssemblyMetadata( "EngineMinorVersion", "1" )]

[assembly: System.Runtime.Versioning.TargetFramework( ".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0" )]
[assembly: global::System.Reflection.AssemblyVersion("0.0.109.0")]
[assembly: global::System.Reflection.AssemblyFileVersion("0.0.109.0")]
harper.topdownplayercontroller / TopDownPlayerController.cs
Game library
using System.Linq;
using Sandbox;
using Sandbox.Citizen;

[Title( "Top Down Player Controller" )]
public class TopDownPlayerController : Component
{
    [Property] public CharacterController CharacterController { get; set; }
	[Property] public CitizenAnimationHelper AnimationHelper { get; set; }
	[Property] public float WalkSpeed { get; set; } = 198f;
	[Property] public float RunSpeed { get; set; } = 320f;
	[Property] public float CameraDistance { get; set; } = 600f;

	protected override void OnUpdate()
	{
		
	}

	protected override void OnFixedUpdate()
	{
		base.OnFixedUpdate();
		MovementInput();
		UpdateAnimations();
	}

	protected override void OnPreRender()
	{
		//UpdateCamera();
	}


	private void MovementInput()
	{
		if (CharacterController is null) return;

		Angles currentAngles = Transform.Rotation.Angles();	

		Vector3 analogMove = Input.AnalogMove;
		float speed = Input.Down("Run") ? RunSpeed : WalkSpeed;
		Vector3 wishVelocity = new Vector3(-analogMove.y, analogMove.x, analogMove.z).Normal * speed;

		if (!wishVelocity.IsNearlyZero())
		{

			currentAngles.yaw = Rotation.LookAt(wishVelocity).Angles().yaw;
			Transform.Rotation = Rotation.From(currentAngles);
		}
		if (!CharacterController.IsOnGround) {
			wishVelocity += Scene.PhysicsWorld.Gravity;
		}

		CharacterController.Velocity = wishVelocity;
		CharacterController.Move();
		Transform.Rotation = currentAngles;
	}

	private void UpdateAnimations()
	{
		if (AnimationHelper is null) return;

		AnimationHelper.WithVelocity(CharacterController.Velocity);
	}

	private void UpdateCamera()
	{
		CameraComponent camera = Scene.GetAllComponents<CameraComponent>().Where( x => x.IsMainCamera ).FirstOrDefault();
		if ( camera is null || CharacterController is null ) return;

		Vector3 characterPostion = CharacterController.Transform.Position;
		Vector3 newCameraPosition = new Vector3(characterPostion.x, characterPostion.y, characterPostion.z + CharacterController.Height + CameraDistance);

		camera.Transform.Position = newCameraPosition;
	}
}
harper.topdownplayercontroller / Editor/MyEditorMenu.cs
Editor library
using Editor;

public static class MyEditorMenu
{
	[Menu( "Editor", "Top Down Player Controller/My Menu Option" )]
	public static void OpenMyMenu()
	{
		EditorUtility.DisplayDialog( "It worked!", "This is being called from your library's editor code!" );
	}
}
harper.topdownplayercontroller / Code/TopDownPlayerController.cs
Game library
using System;
using System.Collections.Specialized;
using System.Linq;
using Sandbox;
using Sandbox.Citizen;

[Title( "Top Down Player Controller" )]
public class TopDownPlayerController : Component
{
    [Property] public CharacterController CharacterController { get; set; }
	[Property] public CitizenAnimationHelper AnimationHelper { get; set; }
	[Property, Group("Speed")] public float Walk { get; set; } = 198f;
	[Property, Group("Speed")] public float Run { get; set; } = 320f;
	[Property, Group("Camera")] public float Distance { get; set; } = 600f;
	[Property, Group("Camera"), Range(0f, 90f)] public float VerticalAxis { get; set; } = 90;
	[Property, Group("Camera"), Range(0f, 360f)] public float HorizontalAxis { get; set; } = 90;

	protected override void OnUpdate()
	{
		
	}

	protected override void OnFixedUpdate()
	{
		base.OnFixedUpdate();
		MovementInput();
		UpdateAnimations();
	}

	protected override void OnPreRender()
	{
		UpdateCamera();
	}


	private void MovementInput()
	{
		if (CharacterController is null) return;

		Angles currentAngles = Transform.Rotation.Angles();	

		Vector3 analogMove = Input.AnalogMove;
		float speed = Input.Down("Run") ? Run : Walk;

		float angleInRadians = MathX.DegreeToRadian(HorizontalAxis);
		float cosAngle = MathF.Cos(angleInRadians);
		float sinAngle = MathF.Sin(angleInRadians);
		Vector3 wishVelocity = new Vector3(
			analogMove.x * cosAngle - analogMove.y * sinAngle,
			analogMove.x * sinAngle + analogMove.y * cosAngle,
			analogMove.z
		).Normal * speed;

		if (!wishVelocity.IsNearlyZero())
		{
			currentAngles.yaw = Rotation.LookAt(wishVelocity).Angles().yaw;
			Transform.Rotation = Rotation.From(currentAngles);
		}
		if (!CharacterController.IsOnGround) {
			wishVelocity += Scene.PhysicsWorld.Gravity;
		}

		CharacterController.Velocity = wishVelocity;
		CharacterController.Move();
		Transform.Rotation = currentAngles;
	}

	private void UpdateAnimations()
	{
		if (AnimationHelper is null) return;

		AnimationHelper.WithVelocity(CharacterController.Velocity);
	}

	private void UpdateCamera()
	{
		CameraComponent camera = Scene.GetAllComponents<CameraComponent>().Where( x => x.IsMainCamera ).FirstOrDefault();
		if ( camera is null || CharacterController is null ) return;

		Vector3 characterPostion = CharacterController.Transform.Position;

		float angleInRadians = MathX.DegreeToRadian(VerticalAxis);
		float verticalCos = MathF.Cos(angleInRadians);
		float verticalSin = MathF.Sin(angleInRadians);

		angleInRadians = MathX.DegreeToRadian(HorizontalAxis);
		float horizontalCos = MathF.Cos(angleInRadians);
		float horizontalSin = MathF.Sin(angleInRadians);

		camera.Transform.Position = new Vector3(
			characterPostion.x - verticalCos * horizontalCos * Distance,
			characterPostion.y - verticalCos * horizontalSin * Distance,
			characterPostion.z + CharacterController.Height + verticalSin * Distance
		);
		camera.Transform.Rotation = new Angles(VerticalAxis, HorizontalAxis, 0);
	}
}
harper.topdownplayercontroller / UnitTests/UnitTest.cs
UnitTest library
global using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]
public class TestInit
{
	[AssemblyInitialize]
	public static void ClassInitialize( TestContext context )
	{
		Sandbox.Application.InitUnitTest();
	}
}
harper.topdownplayercontroller / __gen_RazorNamespace.cs
Game library
global using Microsoft.AspNetCore.Components; 
global using Microsoft.AspNetCore.Components.Rendering;
Debug: View Raw JSON Response
{
    "TotalCount": 7,
    "Files": [
        {
            "Ident": "harper.topdownplayercontroller",
            "Path": "UnitTests/LibraryTest.cs",
            "FileName": "LibraryTest.cs",
            "PackageType": "library",
            "CodeKind": "UnitTest",
            "AssetVersionId": 71868,
            "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": "harper.topdownplayercontroller",
            "Path": ".obj/__compiler_extra.cs",
            "FileName": "__compiler_extra.cs",
            "PackageType": "library",
            "CodeKind": "Game",
            "AssetVersionId": 71868,
            "Code": "global using static Sandbox.Internal.GlobalGameNamespace;\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"AddonTitle\", \"Top Down Player Controller\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"AddonIdent\", \"topdownplayercontroller\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"OrgIdent\", \"harper\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"Ident\", \"harper.topdownplayercontroller\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"CompileTime\", \"8/28/2024 10:44:44 PM\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"EngineVersion\", \"17\" )]\r\n[assembly: global::System.Reflection.AssemblyMetadata( \"EngineMinorVersion\", \"1\" )]\r\n\r\n[assembly: System.Runtime.Versioning.TargetFramework( \".NETCoreApp,Version=v7.0\", FrameworkDisplayName = \".NET 7.0\" )]\r\n[assembly: global::System.Reflection.AssemblyVersion(\"0.0.109.0\")]\r\n[assembly: global::System.Reflection.AssemblyFileVersion(\"0.0.109.0\")]"
        },
        {
            "Ident": "harper.topdownplayercontroller",
            "Path": "TopDownPlayerController.cs",
            "FileName": "TopDownPlayerController.cs",
            "PackageType": "library",
            "CodeKind": "Game",
            "AssetVersionId": 71868,
            "Code": "using System.Linq;\r\nusing Sandbox;\r\nusing Sandbox.Citizen;\r\n\r\n[Title( \"Top Down Player Controller\" )]\r\npublic class TopDownPlayerController : Component\r\n{\r\n    [Property] public CharacterController CharacterController { get; set; }\r\n\t[Property] public CitizenAnimationHelper AnimationHelper { get; set; }\r\n\t[Property] public float WalkSpeed { get; set; } = 198f;\r\n\t[Property] public float RunSpeed { get; set; } = 320f;\r\n\t[Property] public float CameraDistance { get; set; } = 600f;\r\n\r\n\tprotected override void OnUpdate()\r\n\t{\r\n\t\t\r\n\t}\r\n\r\n\tprotected override void OnFixedUpdate()\r\n\t{\r\n\t\tbase.OnFixedUpdate();\r\n\t\tMovementInput();\r\n\t\tUpdateAnimations();\r\n\t}\r\n\r\n\tprotected override void OnPreRender()\r\n\t{\r\n\t\t//UpdateCamera();\r\n\t}\r\n\r\n\r\n\tprivate void MovementInput()\r\n\t{\r\n\t\tif (CharacterController is null) return;\r\n\r\n\t\tAngles currentAngles = Transform.Rotation.Angles();\t\r\n\r\n\t\tVector3 analogMove = Input.AnalogMove;\r\n\t\tfloat speed = Input.Down(\"Run\") ? RunSpeed : WalkSpeed;\r\n\t\tVector3 wishVelocity = new Vector3(-analogMove.y, analogMove.x, analogMove.z).Normal * speed;\r\n\r\n\t\tif (!wishVelocity.IsNearlyZero())\r\n\t\t{\r\n\r\n\t\t\tcurrentAngles.yaw = Rotation.LookAt(wishVelocity).Angles().yaw;\r\n\t\t\tTransform.Rotation = Rotation.From(currentAngles);\r\n\t\t}\r\n\t\tif (!CharacterController.IsOnGround) {\r\n\t\t\twishVelocity += Scene.PhysicsWorld.Gravity;\r\n\t\t}\r\n\r\n\t\tCharacterController.Velocity = wishVelocity;\r\n\t\tCharacterController.Move();\r\n\t\tTransform.Rotation = currentAngles;\r\n\t}\r\n\r\n\tprivate void UpdateAnimations()\r\n\t{\r\n\t\tif (AnimationHelper is null) return;\r\n\r\n\t\tAnimationHelper.WithVelocity(CharacterController.Velocity);\r\n\t}\r\n\r\n\tprivate void UpdateCamera()\r\n\t{\r\n\t\tCameraComponent camera = Scene.GetAllComponents<CameraComponent>().Where( x => x.IsMainCamera ).FirstOrDefault();\r\n\t\tif ( camera is null || CharacterController is null ) return;\r\n\r\n\t\tVector3 characterPostion = CharacterController.Transform.Position;\r\n\t\tVector3 newCameraPosition = new Vector3(characterPostion.x, characterPostion.y, characterPostion.z + CharacterController.Height + CameraDistance);\r\n\r\n\t\tcamera.Transform.Position = newCameraPosition;\r\n\t}\r\n}\r\n"
        },
        {
            "Ident": "harper.topdownplayercontroller",
            "Path": "Editor/MyEditorMenu.cs",
            "FileName": "MyEditorMenu.cs",
            "PackageType": "library",
            "CodeKind": "Editor",
            "AssetVersionId": 71868,
            "Code": "using Editor;\r\n\r\npublic static class MyEditorMenu\r\n{\r\n\t[Menu( \"Editor\", \"Top Down Player Controller/My Menu Option\" )]\r\n\tpublic static void OpenMyMenu()\r\n\t{\r\n\t\tEditorUtility.DisplayDialog( \"It worked!\", \"This is being called from your library's editor code!\" );\r\n\t}\r\n}\r\n"
        },
        {
            "Ident": "harper.topdownplayercontroller",
            "Path": "Code/TopDownPlayerController.cs",
            "FileName": "TopDownPlayerController.cs",
            "PackageType": "library",
            "CodeKind": "Game",
            "AssetVersionId": 71868,
            "Code": "using System;\r\nusing System.Collections.Specialized;\r\nusing System.Linq;\r\nusing Sandbox;\r\nusing Sandbox.Citizen;\r\n\r\n[Title( \"Top Down Player Controller\" )]\r\npublic class TopDownPlayerController : Component\r\n{\r\n    [Property] public CharacterController CharacterController { get; set; }\r\n\t[Property] public CitizenAnimationHelper AnimationHelper { get; set; }\r\n\t[Property, Group(\"Speed\")] public float Walk { get; set; } = 198f;\r\n\t[Property, Group(\"Speed\")] public float Run { get; set; } = 320f;\r\n\t[Property, Group(\"Camera\")] public float Distance { get; set; } = 600f;\r\n\t[Property, Group(\"Camera\"), Range(0f, 90f)] public float VerticalAxis { get; set; } = 90;\r\n\t[Property, Group(\"Camera\"), Range(0f, 360f)] public float HorizontalAxis { get; set; } = 90;\r\n\r\n\tprotected override void OnUpdate()\r\n\t{\r\n\t\t\r\n\t}\r\n\r\n\tprotected override void OnFixedUpdate()\r\n\t{\r\n\t\tbase.OnFixedUpdate();\r\n\t\tMovementInput();\r\n\t\tUpdateAnimations();\r\n\t}\r\n\r\n\tprotected override void OnPreRender()\r\n\t{\r\n\t\tUpdateCamera();\r\n\t}\r\n\r\n\r\n\tprivate void MovementInput()\r\n\t{\r\n\t\tif (CharacterController is null) return;\r\n\r\n\t\tAngles currentAngles = Transform.Rotation.Angles();\t\r\n\r\n\t\tVector3 analogMove = Input.AnalogMove;\r\n\t\tfloat speed = Input.Down(\"Run\") ? Run : Walk;\r\n\r\n\t\tfloat angleInRadians = MathX.DegreeToRadian(HorizontalAxis);\r\n\t\tfloat cosAngle = MathF.Cos(angleInRadians);\r\n\t\tfloat sinAngle = MathF.Sin(angleInRadians);\r\n\t\tVector3 wishVelocity = new Vector3(\r\n\t\t\tanalogMove.x * cosAngle - analogMove.y * sinAngle,\r\n\t\t\tanalogMove.x * sinAngle + analogMove.y * cosAngle,\r\n\t\t\tanalogMove.z\r\n\t\t).Normal * speed;\r\n\r\n\t\tif (!wishVelocity.IsNearlyZero())\r\n\t\t{\r\n\t\t\tcurrentAngles.yaw = Rotation.LookAt(wishVelocity).Angles().yaw;\r\n\t\t\tTransform.Rotation = Rotation.From(currentAngles);\r\n\t\t}\r\n\t\tif (!CharacterController.IsOnGround) {\r\n\t\t\twishVelocity += Scene.PhysicsWorld.Gravity;\r\n\t\t}\r\n\r\n\t\tCharacterController.Velocity = wishVelocity;\r\n\t\tCharacterController.Move();\r\n\t\tTransform.Rotation = currentAngles;\r\n\t}\r\n\r\n\tprivate void UpdateAnimations()\r\n\t{\r\n\t\tif (AnimationHelper is null) return;\r\n\r\n\t\tAnimationHelper.WithVelocity(CharacterController.Velocity);\r\n\t}\r\n\r\n\tprivate void UpdateCamera()\r\n\t{\r\n\t\tCameraComponent camera = Scene.GetAllComponents<CameraComponent>().Where( x => x.IsMainCamera ).FirstOrDefault();\r\n\t\tif ( camera is null || CharacterController is null ) return;\r\n\r\n\t\tVector3 characterPostion = CharacterController.Transform.Position;\r\n\r\n\t\tfloat angleInRadians = MathX.DegreeToRadian(VerticalAxis);\r\n\t\tfloat verticalCos = MathF.Cos(angleInRadians);\r\n\t\tfloat verticalSin = MathF.Sin(angleInRadians);\r\n\r\n\t\tangleInRadians = MathX.DegreeToRadian(HorizontalAxis);\r\n\t\tfloat horizontalCos = MathF.Cos(angleInRadians);\r\n\t\tfloat horizontalSin = MathF.Sin(angleInRadians);\r\n\r\n\t\tcamera.Transform.Position = new Vector3(\r\n\t\t\tcharacterPostion.x - verticalCos * horizontalCos * Distance,\r\n\t\t\tcharacterPostion.y - verticalCos * horizontalSin * Distance,\r\n\t\t\tcharacterPostion.z + CharacterController.Height + verticalSin * Distance\r\n\t\t);\r\n\t\tcamera.Transform.Rotation = new Angles(VerticalAxis, HorizontalAxis, 0);\r\n\t}\r\n}\r\n"
        },
        {
            "Ident": "harper.topdownplayercontroller",
            "Path": "UnitTests/UnitTest.cs",
            "FileName": "UnitTest.cs",
            "PackageType": "library",
            "CodeKind": "UnitTest",
            "AssetVersionId": 71868,
            "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": "harper.topdownplayercontroller",
            "Path": "__gen_RazorNamespace.cs",
            "FileName": "__gen_RazorNamespace.cs",
            "PackageType": "library",
            "CodeKind": "Game",
            "AssetVersionId": 71868,
            "Code": "global using Microsoft.AspNetCore.Components; \nglobal using Microsoft.AspNetCore.Components.Rendering;\n"
        }
    ]
}