Create NetworkManager, Client, and Hud
This commit is contained in:
179
Assets/prefabs/player.prefab
Normal file
179
Assets/prefabs/player.prefab
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
{
|
||||||
|
"RootObject": {
|
||||||
|
"__guid": "226bae44-5ffa-4e59-8314-fb7704d99792",
|
||||||
|
"Flags": 0,
|
||||||
|
"Name": "Player Controller",
|
||||||
|
"Position": "-200.7519,-55.49498,1.470044",
|
||||||
|
"Enabled": true,
|
||||||
|
"Components": [
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.PlayerController",
|
||||||
|
"__guid": "f87ac628-ba1d-4ea4-ad35-061fbdd92fbc",
|
||||||
|
"AimStrengthBody": 1,
|
||||||
|
"AimStrengthEyes": 1,
|
||||||
|
"AimStrengthHead": 1,
|
||||||
|
"Body": {
|
||||||
|
"_type": "component",
|
||||||
|
"component_id": "3b090c90-c4ba-48dc-945e-46457cb453b1",
|
||||||
|
"go": "226bae44-5ffa-4e59-8314-fb7704d99792",
|
||||||
|
"component_type": "Rigidbody"
|
||||||
|
},
|
||||||
|
"BodyHeight": 72,
|
||||||
|
"BodyMass": 500,
|
||||||
|
"BodyRadius": 16,
|
||||||
|
"CameraOffset": "256,0,12",
|
||||||
|
"ColliderObject": {
|
||||||
|
"_type": "gameobject",
|
||||||
|
"go": "f45df165-faec-47b8-9e73-d2d0d1d94660"
|
||||||
|
},
|
||||||
|
"DuckedHeight": 36,
|
||||||
|
"DuckedSpeed": 70,
|
||||||
|
"EnableFootstepSounds": true,
|
||||||
|
"EnablePressing": true,
|
||||||
|
"EyeDistanceFromTop": 8,
|
||||||
|
"FootstepMixer": {
|
||||||
|
"Name": "unknown",
|
||||||
|
"Id": "00000000-0000-0000-0000-000000000000"
|
||||||
|
},
|
||||||
|
"FootstepVolume": 1,
|
||||||
|
"HideBodyInFirstPerson": true,
|
||||||
|
"JumpSpeed": 300,
|
||||||
|
"ReachLength": 130,
|
||||||
|
"Renderer": {
|
||||||
|
"_type": "component",
|
||||||
|
"component_id": "5ff01433-a4b1-4ac0-9437-20f18966c556",
|
||||||
|
"go": "e98ba887-3414-4817-a78a-8004711774c5",
|
||||||
|
"component_type": "SkinnedModelRenderer"
|
||||||
|
},
|
||||||
|
"RotateWithGround": true,
|
||||||
|
"RotationAngleLimit": 45,
|
||||||
|
"RotationSpeed": 1,
|
||||||
|
"RunSpeed": 320,
|
||||||
|
"ShowColliderComponents": false,
|
||||||
|
"ShowRigidbodyComponent": false,
|
||||||
|
"ThirdPerson": true,
|
||||||
|
"ToggleCameraModeButton": "view",
|
||||||
|
"UseAnimatorControls": true,
|
||||||
|
"UseButton": "use",
|
||||||
|
"UseCameraControls": true,
|
||||||
|
"UseInputControls": true,
|
||||||
|
"WalkSpeed": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.Rigidbody",
|
||||||
|
"__guid": "3b090c90-c4ba-48dc-945e-46457cb453b1",
|
||||||
|
"AngularDamping": 1,
|
||||||
|
"Gravity": true,
|
||||||
|
"LinearDamping": 0.1,
|
||||||
|
"Locking": {
|
||||||
|
"X": false,
|
||||||
|
"Y": false,
|
||||||
|
"Z": false,
|
||||||
|
"Pitch": true,
|
||||||
|
"Yaw": true,
|
||||||
|
"Roll": true
|
||||||
|
},
|
||||||
|
"MassCenterOverride": "0,0,36",
|
||||||
|
"MassOverride": 500,
|
||||||
|
"MotionEnabled": true,
|
||||||
|
"OverrideMassCenter": true,
|
||||||
|
"RigidbodyFlags": "DisableCollisionSounds",
|
||||||
|
"StartAsleep": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.Movement.MoveModeWalk",
|
||||||
|
"__guid": "063da125-6f28-49be-96cd-da5b52cb4007",
|
||||||
|
"GroundAngle": 45,
|
||||||
|
"Priority": 0,
|
||||||
|
"StepDownHeight": 18,
|
||||||
|
"StepUpHeight": 18
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.Movement.MoveModeSwim",
|
||||||
|
"__guid": "72adfaa2-8d48-4eee-9037-16b57c737aaf",
|
||||||
|
"Priority": 10,
|
||||||
|
"SwimLevel": 0.7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.Movement.MoveModeLadder",
|
||||||
|
"__guid": "bb0f3a51-8973-4f40-af23-60c7c2d1f479",
|
||||||
|
"ClimbableTags": "ladder",
|
||||||
|
"Priority": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"__guid": "e98ba887-3414-4817-a78a-8004711774c5",
|
||||||
|
"Flags": 0,
|
||||||
|
"Name": "Body",
|
||||||
|
"Enabled": true,
|
||||||
|
"Components": [
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.SkinnedModelRenderer",
|
||||||
|
"__guid": "5ff01433-a4b1-4ac0-9437-20f18966c556",
|
||||||
|
"BodyGroups": 341,
|
||||||
|
"CreateAttachments": false,
|
||||||
|
"CreateBoneObjects": false,
|
||||||
|
"Model": "models/citizen/citizen.vmdl",
|
||||||
|
"Morphs": {},
|
||||||
|
"Parameters": {
|
||||||
|
"bools": {},
|
||||||
|
"ints": {},
|
||||||
|
"floats": {},
|
||||||
|
"vectors": {},
|
||||||
|
"rotations": {}
|
||||||
|
},
|
||||||
|
"RenderOptions": {
|
||||||
|
"GameLayer": true,
|
||||||
|
"OverlayLayer": false,
|
||||||
|
"BloomLayer": false,
|
||||||
|
"AfterUILayer": false
|
||||||
|
},
|
||||||
|
"RenderType": "On",
|
||||||
|
"Sequence": {
|
||||||
|
"Name": null
|
||||||
|
},
|
||||||
|
"Tint": "1,1,1,1",
|
||||||
|
"UseAnimGraph": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__guid": "f45df165-faec-47b8-9e73-d2d0d1d94660",
|
||||||
|
"Flags": 1,
|
||||||
|
"Name": "Colliders",
|
||||||
|
"Enabled": true,
|
||||||
|
"Components": [
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.CapsuleCollider",
|
||||||
|
"__guid": "5d2196ca-4be8-4fb2-84af-09d1e9b29b30",
|
||||||
|
"End": "0,0,45.05097",
|
||||||
|
"Friction": 0,
|
||||||
|
"IsTrigger": false,
|
||||||
|
"Radius": 11.313708,
|
||||||
|
"Start": "0,0,60.68629",
|
||||||
|
"Static": false,
|
||||||
|
"SurfaceVelocity": "0,0,0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.BoxCollider",
|
||||||
|
"__guid": "73ed41e5-51cc-4ee4-aac2-87df6bd120c3",
|
||||||
|
"Center": "0,0,18",
|
||||||
|
"Friction": 0,
|
||||||
|
"IsTrigger": false,
|
||||||
|
"Scale": "16,16,36",
|
||||||
|
"Static": false,
|
||||||
|
"SurfaceVelocity": "0,0,0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShowInMenu": false,
|
||||||
|
"MenuPath": null,
|
||||||
|
"MenuIcon": null,
|
||||||
|
"DontBreakAsTemplate": false,
|
||||||
|
"ResourceVersion": 1,
|
||||||
|
"__references": [],
|
||||||
|
"__version": 1
|
||||||
|
}
|
||||||
22
Assets/prefabs/spawn_point.prefab
Normal file
22
Assets/prefabs/spawn_point.prefab
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"RootObject": {
|
||||||
|
"__guid": "15c44ba2-0e41-4b18-a7fa-6aeeca6b546b",
|
||||||
|
"Flags": 0,
|
||||||
|
"Name": "Spawn Point",
|
||||||
|
"Enabled": true,
|
||||||
|
"Components": [
|
||||||
|
{
|
||||||
|
"__type": "Sandbox.SpawnPoint",
|
||||||
|
"__guid": "e86b1cd6-90b3-45f5-a809-1ed7055fb3f9",
|
||||||
|
"Color": "0.8902,0.31765,0.05098,1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShowInMenu": false,
|
||||||
|
"MenuPath": null,
|
||||||
|
"MenuIcon": null,
|
||||||
|
"DontBreakAsTemplate": false,
|
||||||
|
"ResourceVersion": 1,
|
||||||
|
"__references": [],
|
||||||
|
"__version": 1
|
||||||
|
}
|
||||||
18
code/Client.cs
Normal file
18
code/Client.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using LuckerParty.UI;
|
||||||
|
|
||||||
|
namespace LuckerParty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A Lucker Party Client. Entry point for a user (or bot?) to get a UI and become a Spectator or Lucker after they've
|
||||||
|
/// connected to the lobby.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class Client : Component
|
||||||
|
{
|
||||||
|
public Connection Connection { get; set; }
|
||||||
|
|
||||||
|
protected override void OnStart()
|
||||||
|
{
|
||||||
|
GameObject.AddComponent<ScreenPanel>();
|
||||||
|
GameObject.AddComponent<Hud>();
|
||||||
|
}
|
||||||
|
}
|
||||||
18
code/NetworkManager.cs
Normal file
18
code/NetworkManager.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
namespace LuckerParty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Listens to Network events and creates Client GameObjects
|
||||||
|
/// </summary>
|
||||||
|
public sealed class NetworkManager : Component, Component.INetworkListener
|
||||||
|
{
|
||||||
|
[Property] private GameObject ClientGroup { get; set; }
|
||||||
|
|
||||||
|
public void OnActive( Connection channel )
|
||||||
|
{
|
||||||
|
var gameObject = new GameObject( ClientGroup ) { Name = $"{channel.DisplayName} ({channel.SteamId})" };
|
||||||
|
gameObject.NetworkSpawn( channel );
|
||||||
|
|
||||||
|
var client = gameObject.AddComponent<Client>();
|
||||||
|
client.Connection = channel;
|
||||||
|
}
|
||||||
|
}
|
||||||
27
code/UI/Hud.razor
Normal file
27
code/UI/Hud.razor
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
@using System
|
||||||
|
@inherits PanelComponent
|
||||||
|
@namespace LuckerParty.UI
|
||||||
|
|
||||||
|
<root>
|
||||||
|
<div class="title">Hello, @_name</div>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
@code
|
||||||
|
{
|
||||||
|
|
||||||
|
private string _name;
|
||||||
|
|
||||||
|
protected override void OnAwake()
|
||||||
|
{
|
||||||
|
base.OnAwake();
|
||||||
|
_name = GameObject.GetComponent<Client>().Connection.DisplayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// the hash determines if the system should be rebuilt. If it changes, it will be rebuilt
|
||||||
|
/// </summary>
|
||||||
|
protected override int BuildHash()
|
||||||
|
{
|
||||||
|
return HashCode.Combine( _name );
|
||||||
|
}
|
||||||
|
}
|
||||||
12
lucker_party.sln.DotSettings.user
Normal file
12
lucker_party.sln.DotSettings.user
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AConnection_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F19abf87070324a24a498e06d51eb783a263600_003F8b_003Fa645f6c8_003FConnection_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGame_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F262292e54674e2ebba95aeee93cb92cef46fb49c92f9c6f8cf9773747f3f9cc1_003FGame_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AINetworkListener_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fbdd02fd1a914f886538cdccaadc6c813d1b5badfd9fa44d714323b7978b49fe_003FINetworkListener_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AModelRenderer_002EAttachments_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fb26ca1467e599f1ba7f72867e56dd242371c9e01e56f4d81dedcf73618d973a_003FModelRenderer_002EAttachments_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AModelRenderer_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fd9493723581e2c8a31b40577dacf1686f31933848f3532d945b83a8527f799_003FModelRenderer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANetworking_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F19abf87070324a24a498e06d51eb783a263600_003Ff3_003F9c09fbee_003FNetworking_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASceneModel_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F19abf87070324a24a498e06d51eb783a263600_003F73_003F68917622_003FSceneModel_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATCPClient_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F212760d42b6ac7f5778e2cb7bd6eec0eb5edc15575b9775855c7a77f8363_003FTCPClient_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue"><AssemblyExplorer>
|
||||||
|
<Assembly Path="D:\SteamLibrary\steamapps\common\sbox\bin\managed\Sandbox.Game.dll" />
|
||||||
|
</AssemblyExplorer></s:String></wpf:ResourceDictionary>
|
||||||
Reference in New Issue
Block a user