removed Structural instance and SJKScript was changed to be using an nuget package.

This commit is contained in:
2026-04-19 00:46:18 -04:00
parent 5906f248f4
commit e7ef3896b0
21 changed files with 132 additions and 1060 deletions

View File

@@ -23,7 +23,6 @@ public partial class VoxelGridNode : Node3D, IProvide<IVoxelGridQuery<LayeredEqu
IItemRenderer IProvide<IItemRenderer>.Value() => _itemRenderer;
public override void _Ready()
{
TestStructural.Test();
GD.Print();
base._Ready();
_voxelGrid = new EquipmentVoxelGrid();
@@ -107,7 +106,8 @@ public class LayeredEquipment
}
}
}
public sealed class SlotDescriptor {
public sealed class SlotDescriptor
{
public SlotDirection Direction { get; }
public SlotDescriptor(
@@ -117,10 +117,12 @@ public sealed class SlotDescriptor {
Direction = direction;
}
}
public abstract class SlotLogic<TPayload> {
public abstract class SlotLogic<TPayload>
{
public SlotDescriptor Descriptor { get; }
protected SlotLogic(SlotDescriptor descriptor) {
protected SlotLogic(SlotDescriptor descriptor)
{
Descriptor = descriptor;
}
@@ -133,26 +135,30 @@ public abstract class SlotLogic<TPayload> {
);
}
public sealed class ItemSlotLogic
: SlotLogic<IBeltItem> {
: SlotLogic<IBeltItem>
{
public ItemSlotLogic(SlotDescriptor descriptor)
: base(descriptor) {}
: base(descriptor) { }
public override bool CanTransfer(IBeltItem item) => false;
// item.Count > 0;
// item.Count > 0;
public override bool TryTransfer(IBeltItem item) {
public override bool TryTransfer(IBeltItem item)
{
// routing rules
return true;
}
}
[Meta]
public partial class ItemSlotNode
: SlotComponentNode {
: SlotComponentNode
{
private ItemSlotLogic _logic;
public override void _Ready() {
public override void _Ready()
{
base._Ready();
_logic = new ItemSlotLogic(
new SlotDescriptor(Direction)
@@ -163,7 +169,8 @@ public partial class ItemSlotNode
}
public void Tick(IBeltItem stack) {
public void Tick(IBeltItem stack)
{
if (_logic.CanTransfer(stack))
_logic.TryTransfer(stack);
}