working on actors
This commit is contained in:
19
Assets/jelycho/Code/Items/ItemActor.cs
Normal file
19
Assets/jelycho/Code/Items/ItemActor.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using RebootKit.Engine.Simulation;
|
||||
using Unity.Netcode;
|
||||
|
||||
namespace RebootReality.jelycho.Items {
|
||||
public class ItemActor : Actor {
|
||||
class ItemActorData : IActorData {
|
||||
public string ItemID;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
}
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
}
|
||||
}
|
||||
|
||||
protected override IActorData CreateActorData() {
|
||||
return new ItemActorData();
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/jelycho/Code/Items/ItemActor.cs.meta
Normal file
3
Assets/jelycho/Code/Items/ItemActor.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ee344364fab4988921fe13bc0bb2784
|
||||
timeCreated: 1751389377
|
||||
15
Assets/jelycho/Code/Items/ItemsManager.cs
Normal file
15
Assets/jelycho/Code/Items/ItemsManager.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Unity.Netcode;
|
||||
|
||||
namespace RebootReality.jelycho.Items {
|
||||
public class ItemsManager : NetworkBehaviour {
|
||||
|
||||
|
||||
public override void OnNetworkSpawn() {
|
||||
base.OnNetworkSpawn();
|
||||
}
|
||||
|
||||
public override void OnNetworkDespawn() {
|
||||
base.OnNetworkDespawn();
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/jelycho/Code/Items/ItemsManager.cs.meta
Normal file
3
Assets/jelycho/Code/Items/ItemsManager.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f944119563484f089d2efb7e347c1bf4
|
||||
timeCreated: 1751389244
|
||||
78
Assets/jelycho/Code/Items/WorkbenchActor.cs
Normal file
78
Assets/jelycho/Code/Items/WorkbenchActor.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System.Globalization;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using TMPro;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace RebootReality.jelycho.Items {
|
||||
public class WorkbenchActor : Actor {
|
||||
class WorkbenchActorData : IActorData {
|
||||
public int SelectedRecipeIndex;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(SelectedRecipeIndex);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out SelectedRecipeIndex);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField] AssetReferenceGameObject m_ItemActorReference;
|
||||
|
||||
[SerializeField] Transform m_PreviewSlot;
|
||||
[SerializeField] Transform m_CraftSpawnPoint;
|
||||
|
||||
[SerializeField] TMP_Text m_TimerText;
|
||||
|
||||
public override void ServerTick(float deltaTime) {
|
||||
base.ServerTick(deltaTime);
|
||||
}
|
||||
|
||||
public override void ClientTick(float deltaTime) {
|
||||
base.ClientTick(deltaTime);
|
||||
m_TimerText.text = DataAs<WorkbenchActorData>().SelectedRecipeIndex.ToString();
|
||||
}
|
||||
|
||||
protected override void OnActorCommandServer(ActorCommand actorCommand) {
|
||||
if (actorCommand.CommandID == (ushort) WorkbenchActorCommands.SelectNextRecipe) {
|
||||
WorkbenchActorData data = DataAs<WorkbenchActorData>();
|
||||
data.SelectedRecipeIndex += 1;
|
||||
IsDataDirty = true;
|
||||
} else if (actorCommand.CommandID == (ushort) WorkbenchActorCommands.SelectPreviousRecipe) {
|
||||
WorkbenchActorData data = DataAs<WorkbenchActorData>();
|
||||
data.SelectedRecipeIndex -= 1;
|
||||
IsDataDirty = true;
|
||||
} else if (actorCommand.CommandID == (ushort) WorkbenchActorCommands.CraftItem) {
|
||||
RR.SpawnActor(m_ItemActorReference, m_CraftSpawnPoint.position, Quaternion.identity);
|
||||
}
|
||||
}
|
||||
|
||||
protected override IActorData CreateActorData() {
|
||||
return new WorkbenchActorData {
|
||||
SelectedRecipeIndex = Random.Range(0, 10)
|
||||
};
|
||||
}
|
||||
|
||||
public void SelectNextRecipe() {
|
||||
SendActorCommand((ushort)WorkbenchActorCommands.SelectNextRecipe);
|
||||
}
|
||||
|
||||
public void SelectPreviousRecipe() {
|
||||
SendActorCommand((ushort)WorkbenchActorCommands.SelectPreviousRecipe);
|
||||
}
|
||||
|
||||
public void CraftItem() {
|
||||
SendActorCommand((ushort) WorkbenchActorCommands.CraftItem);
|
||||
}
|
||||
}
|
||||
|
||||
public enum WorkbenchActorCommands : ushort {
|
||||
None = 0x0000,
|
||||
SelectNextRecipe = 0x0001,
|
||||
SelectPreviousRecipe = 0x0002,
|
||||
CraftItem = 0x0003,
|
||||
}
|
||||
}
|
||||
3
Assets/jelycho/Code/Items/WorkbenchActor.cs.meta
Normal file
3
Assets/jelycho/Code/Items/WorkbenchActor.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18679c72768c42b0bfed7d0fdb1a2a4e
|
||||
timeCreated: 1751400906
|
||||
Reference in New Issue
Block a user