working on actors

This commit is contained in:
2025-07-03 05:52:52 +02:00
parent 315661ed8d
commit 0d69e37385
132 changed files with 63264 additions and 591 deletions

View 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();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4ee344364fab4988921fe13bc0bb2784
timeCreated: 1751389377

View 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();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f944119563484f089d2efb7e347c1bf4
timeCreated: 1751389244

View 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,
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 18679c72768c42b0bfed7d0fdb1a2a4e
timeCreated: 1751400906