From 5bd7c08f83b878bfc2943bff39d7c9f6141c0714 Mon Sep 17 00:00:00 2001 From: skippyall <121978267+skippyall@users.noreply.github.com> Date: Mon, 26 Jan 2026 00:03:57 +0100 Subject: [PATCH] Refactoring --- .../minions/MinionMixinConfigPlugin.java | 2 +- .../io/github/skippyall/minions/Minions.java | 27 ---------------- .../miniontrigger/MinionTriggerBlock.java | 9 +++--- .../MinionTriggerBlockEntity.java | 2 +- .../MinionTriggerMinionListener.java | 2 +- .../minions/clipboard/Clipboard.java | 14 +++++++++ .../ClipboardItem.java} | 9 +++--- .../InstructionClipboard.java} | 16 +++++----- .../minions/gui/ConfigureInstructionGui.java | 4 +-- .../skippyall/minions/gui/GuiDisplay.java | 8 ----- .../skippyall/minions/gui/InstructionGui.java | 3 +- .../skippyall/minions/gui/MinionLookGui.java | 2 +- .../ActionExecution.java | 3 +- .../MineBlockExecution.java | 2 +- .../inventory/SwapItemExecution.java | 2 +- .../move/AbstractTurnExecution.java | 2 +- .../move/ContinuousWalkExecution.java | 2 +- .../move/TurnDirection.java | 2 +- .../move/TurnExecution.java | 4 +-- .../move/TurnVectorExecution.java | 4 +-- .../move/WalkExecution.java | 4 +-- .../BlockEntityMinionInstructionListener.java | 2 +- .../BlockEntityMinionListener.java | 2 +- .../{util => listener}/ListenerManager.java | 2 +- .../SerializableListenerManager.java | 2 +- .../skippyall/minions/minion/MinionData.java | 14 +-------- .../skippyall/minions/minion/MinionItem.java | 9 +++--- .../minions/minion/MinionListener.java | 2 +- .../minion/fakeplayer/MinionFakePlayer.java | 4 +-- .../minions/module/MinionModule.java | 13 -------- .../minions/module/ModuleInventory.java | 5 +-- .../minions/module/SpecialAbilities.java | 10 ------ .../instruction/ConfiguredInstruction.java | 2 +- .../ConfiguredInstructionListener.java | 2 +- .../minions/reference/Reference.java | 31 ------------------- .../minions/registration/ClipboardTypes.java | 18 +++++++++++ .../minions/registration/GuiDisplayTypes.java | 15 +++++++++ .../Instructions.java | 17 +++++----- .../registration/MinionComponentTypes.java | 30 ++++++++++++++++++ .../minions/registration/MinionItems.java | 8 ++--- .../minions/registration/MinionListeners.java | 12 +++++++ .../registration/MinionRegistration.java | 22 ++++++++----- .../registration/MinionRegistries.java | 4 +-- .../skin => registration}/SkinProviders.java | 7 +++-- .../registration/SpecialAbilities.java | 18 +++++++++++ .../ValueSuppliers.java | 5 +-- .../value => registration}/ValueTypes.java | 6 ++-- 47 files changed, 203 insertions(+), 182 deletions(-) create mode 100644 src/main/java/io/github/skippyall/minions/clipboard/Clipboard.java rename src/main/java/io/github/skippyall/minions/{reference/ReferenceItem.java => clipboard/ClipboardItem.java} (78%) rename src/main/java/io/github/skippyall/minions/{reference/InstructionReference.java => clipboard/InstructionClipboard.java} (66%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/ActionExecution.java (91%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/MineBlockExecution.java (98%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/inventory/SwapItemExecution.java (98%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/AbstractTurnExecution.java (94%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/ContinuousWalkExecution.java (90%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/TurnDirection.java (95%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/TurnExecution.java (87%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/TurnVectorExecution.java (92%) rename src/main/java/io/github/skippyall/minions/{program/instruction/execution => instruction}/move/WalkExecution.java (93%) rename src/main/java/io/github/skippyall/minions/{block => listener}/BlockEntityMinionInstructionListener.java (97%) rename src/main/java/io/github/skippyall/minions/{block => listener}/BlockEntityMinionListener.java (98%) rename src/main/java/io/github/skippyall/minions/{util => listener}/ListenerManager.java (96%) rename src/main/java/io/github/skippyall/minions/{util => listener}/SerializableListenerManager.java (98%) delete mode 100644 src/main/java/io/github/skippyall/minions/module/SpecialAbilities.java delete mode 100644 src/main/java/io/github/skippyall/minions/reference/Reference.java create mode 100644 src/main/java/io/github/skippyall/minions/registration/ClipboardTypes.java create mode 100644 src/main/java/io/github/skippyall/minions/registration/GuiDisplayTypes.java rename src/main/java/io/github/skippyall/minions/{program/instruction => registration}/Instructions.java (80%) create mode 100644 src/main/java/io/github/skippyall/minions/registration/MinionComponentTypes.java create mode 100644 src/main/java/io/github/skippyall/minions/registration/MinionListeners.java rename src/main/java/io/github/skippyall/minions/{minion/skin => registration}/SkinProviders.java (68%) create mode 100644 src/main/java/io/github/skippyall/minions/registration/SpecialAbilities.java rename src/main/java/io/github/skippyall/minions/{program/supplier => registration}/ValueSuppliers.java (75%) rename src/main/java/io/github/skippyall/minions/{program/value => registration}/ValueTypes.java (91%) diff --git a/src/main/java/io/github/skippyall/minions/MinionMixinConfigPlugin.java b/src/main/java/io/github/skippyall/minions/MinionMixinConfigPlugin.java index 639f43c..a065f2e 100644 --- a/src/main/java/io/github/skippyall/minions/MinionMixinConfigPlugin.java +++ b/src/main/java/io/github/skippyall/minions/MinionMixinConfigPlugin.java @@ -22,7 +22,7 @@ public class MinionMixinConfigPlugin implements IMixinConfigPlugin { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { if(mixinClassName.startsWith("io.github.skippyall.mixins.compat.universal_graves.")) { - return FabricLoader.getInstance().isModLoaded("universal-universal_graves"); + return FabricLoader.getInstance().isModLoaded("universal-graves"); } return true; } diff --git a/src/main/java/io/github/skippyall/minions/Minions.java b/src/main/java/io/github/skippyall/minions/Minions.java index 27ce0fd..56f885d 100644 --- a/src/main/java/io/github/skippyall/minions/Minions.java +++ b/src/main/java/io/github/skippyall/minions/Minions.java @@ -2,21 +2,9 @@ package io.github.skippyall.minions; import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; import io.github.skippyall.minions.command.MinionsCommand; -import io.github.skippyall.minions.gui.GuiDisplay; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; -import io.github.skippyall.minions.minion.MinionData; import io.github.skippyall.minions.minion.MinionPersistentState; -import io.github.skippyall.minions.minion.skin.SkinProviders; -import io.github.skippyall.minions.module.MinionModule; -import io.github.skippyall.minions.program.instruction.Instructions; -import io.github.skippyall.minions.program.supplier.ValueSuppliers; -import io.github.skippyall.minions.program.value.ValueTypes; -import io.github.skippyall.minions.reference.Reference; -import io.github.skippyall.minions.registration.MinionBlocks; -import io.github.skippyall.minions.registration.MinionCreativeTab; -import io.github.skippyall.minions.registration.MinionItems; import io.github.skippyall.minions.registration.MinionRegistration; -import io.github.skippyall.minions.registration.MinionRegistries; import io.github.skippyall.minions.util.PolymerUtil; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; @@ -31,21 +19,6 @@ public class Minions implements ModInitializer { @Override public void onInitialize() { - MinionRegistries.register(); - - Instructions.register(); - ValueSuppliers.register(); - ValueTypes.register(); - SkinProviders.register(); - GuiDisplay.register(); - - MinionData.register(); - MinionModule.register(); - Reference.register(); - - MinionBlocks.register(); - MinionItems.register(); - MinionCreativeTab.registerGroup(); MinionRegistration.register(); PolymerUtil.register(); diff --git a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlock.java b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlock.java index 1351c4f..5ce9f6f 100644 --- a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlock.java +++ b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlock.java @@ -11,14 +11,13 @@ import eu.pb4.polymer.virtualentity.api.elements.ItemDisplayElement; import io.github.skippyall.minions.registration.MinionBlocks; import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.minion.MinionPersistentState; -import io.github.skippyall.minions.reference.InstructionReference; -import io.github.skippyall.minions.reference.Reference; +import io.github.skippyall.minions.clipboard.InstructionClipboard; +import io.github.skippyall.minions.registration.MinionComponentTypes; import io.github.skippyall.minions.util.PolymerUtil; import net.minecraft.block.AbstractRedstoneGateBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.Blocks; import net.minecraft.block.ShapeContext; import net.minecraft.block.SideShapeType; import net.minecraft.block.entity.BlockEntity; @@ -86,7 +85,7 @@ public class MinionTriggerBlock extends BlockWithEntity implements PolymerBlock, @Override protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if(stack.get(Reference.COMPONENT_TYPE) instanceof InstructionReference instruction) { + if(stack.get(MinionComponentTypes.REFERENCE) instanceof InstructionClipboard instruction) { world.getBlockEntity(pos, MinionBlocks.MINION_TRIGGER_BE_TYPE).ifPresent(be -> { be.setInstruction(instruction.selectedMinion(), instruction.selectedInstruction()); player.playSoundToPlayer(SoundEvents.BLOCK_NOTE_BLOCK_CHIME.value(), SoundCategory.BLOCKS, 1, 1); @@ -148,7 +147,7 @@ public class MinionTriggerBlock extends BlockWithEntity implements PolymerBlock, @Override public BlockState getPolymerBlockState(BlockState state, PacketContext context) { - return PolymerUtil.isOnClient(context) ? state : Blocks.COMPARATOR.getDefaultState().with(AbstractRedstoneGateBlock.POWERED, state.get(POWERED)); + return PolymerUtil.isOnClient(context) ? state : net.minecraft.block.Blocks.COMPARATOR.getDefaultState().with(AbstractRedstoneGateBlock.POWERED, state.get(POWERED)); } @Override diff --git a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlockEntity.java b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlockEntity.java index 5dd7dc7..f423f4e 100644 --- a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlockEntity.java +++ b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerBlockEntity.java @@ -1,6 +1,6 @@ package io.github.skippyall.minions.block.miniontrigger; -import io.github.skippyall.minions.block.BlockEntityMinionListener; +import io.github.skippyall.minions.listener.BlockEntityMinionListener; import io.github.skippyall.minions.registration.MinionBlocks; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; diff --git a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerMinionListener.java b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerMinionListener.java index 546be5d..6fb9216 100644 --- a/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerMinionListener.java +++ b/src/main/java/io/github/skippyall/minions/block/miniontrigger/MinionTriggerMinionListener.java @@ -3,7 +3,7 @@ package io.github.skippyall.minions.block.miniontrigger; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import io.github.skippyall.minions.Minions; -import io.github.skippyall.minions.block.BlockEntityMinionInstructionListener; +import io.github.skippyall.minions.listener.BlockEntityMinionInstructionListener; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.registration.MinionBlocks; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; diff --git a/src/main/java/io/github/skippyall/minions/clipboard/Clipboard.java b/src/main/java/io/github/skippyall/minions/clipboard/Clipboard.java new file mode 100644 index 0000000..0f89e7b --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/clipboard/Clipboard.java @@ -0,0 +1,14 @@ +package io.github.skippyall.minions.clipboard; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import io.github.skippyall.minions.registration.MinionRegistries; +import net.minecraft.item.tooltip.TooltipAppender; + +import java.util.function.Function; + +public interface Clipboard extends TooltipAppender { + Codec CODEC = MinionRegistries.CLIPBOARD_TYPES.getCodec().dispatch(Clipboard::getCodec, Function.identity()); + + MapCodec getCodec(); +} diff --git a/src/main/java/io/github/skippyall/minions/reference/ReferenceItem.java b/src/main/java/io/github/skippyall/minions/clipboard/ClipboardItem.java similarity index 78% rename from src/main/java/io/github/skippyall/minions/reference/ReferenceItem.java rename to src/main/java/io/github/skippyall/minions/clipboard/ClipboardItem.java index 8c784c8..5c46618 100644 --- a/src/main/java/io/github/skippyall/minions/reference/ReferenceItem.java +++ b/src/main/java/io/github/skippyall/minions/clipboard/ClipboardItem.java @@ -1,6 +1,7 @@ -package io.github.skippyall.minions.reference; +package io.github.skippyall.minions.clipboard; import eu.pb4.polymer.core.api.item.PolymerItem; +import io.github.skippyall.minions.registration.MinionComponentTypes; import io.github.skippyall.minions.registration.MinionItems; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; import net.minecraft.component.DataComponentTypes; @@ -12,8 +13,8 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; import xyz.nucleoid.packettweaker.PacketContext; -public class ReferenceItem extends Item implements PolymerItem { - public ReferenceItem(Settings settings) { +public class ClipboardItem extends Item implements PolymerItem { + public ClipboardItem(Settings settings) { super(settings); } @@ -36,7 +37,7 @@ public class ReferenceItem extends Item implements PolymerItem { public static ItemStack createInstructionReference(MinionFakePlayer minion, String instructionName) { ItemStack stack = new ItemStack(MinionItems.REFERENCE_ITEM); - stack.set(Reference.COMPONENT_TYPE, new InstructionReference(minion.getUuid(), instructionName, minion.getGameProfile().getName())); + stack.set(MinionComponentTypes.REFERENCE, new InstructionClipboard(minion.getUuid(), instructionName, minion.getGameProfile().getName())); return stack; } } diff --git a/src/main/java/io/github/skippyall/minions/reference/InstructionReference.java b/src/main/java/io/github/skippyall/minions/clipboard/InstructionClipboard.java similarity index 66% rename from src/main/java/io/github/skippyall/minions/reference/InstructionReference.java rename to src/main/java/io/github/skippyall/minions/clipboard/InstructionClipboard.java index 47cdc1a..2491150 100644 --- a/src/main/java/io/github/skippyall/minions/reference/InstructionReference.java +++ b/src/main/java/io/github/skippyall/minions/clipboard/InstructionClipboard.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.reference; +package io.github.skippyall.minions.clipboard; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; @@ -12,16 +12,16 @@ import net.minecraft.util.Uuids; import java.util.UUID; import java.util.function.Consumer; -public record InstructionReference(UUID selectedMinion, String selectedInstruction, String visualMinionName) implements Reference { - public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> +public record InstructionClipboard(UUID selectedMinion, String selectedInstruction, String visualMinionName) implements Clipboard { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( - Uuids.CODEC.fieldOf("selectedMinion").forGetter(InstructionReference::selectedMinion), - Codec.STRING.fieldOf("selectedInstruction").forGetter(InstructionReference::selectedInstruction), - Codec.STRING.fieldOf("visualMinionName").forGetter(InstructionReference::visualMinionName) - ).apply(instance, InstructionReference::new)); + Uuids.CODEC.fieldOf("selectedMinion").forGetter(InstructionClipboard::selectedMinion), + Codec.STRING.fieldOf("selectedInstruction").forGetter(InstructionClipboard::selectedInstruction), + Codec.STRING.fieldOf("visualMinionName").forGetter(InstructionClipboard::visualMinionName) + ).apply(instance, InstructionClipboard::new)); @Override - public MapCodec getCodec() { + public MapCodec getCodec() { return CODEC; } diff --git a/src/main/java/io/github/skippyall/minions/gui/ConfigureInstructionGui.java b/src/main/java/io/github/skippyall/minions/gui/ConfigureInstructionGui.java index 1f54e10..d6b94e1 100644 --- a/src/main/java/io/github/skippyall/minions/gui/ConfigureInstructionGui.java +++ b/src/main/java/io/github/skippyall/minions/gui/ConfigureInstructionGui.java @@ -6,7 +6,7 @@ import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; import io.github.skippyall.minions.program.instruction.ConfiguredInstruction; import io.github.skippyall.minions.program.supplier.Parameter; -import io.github.skippyall.minions.reference.ReferenceItem; +import io.github.skippyall.minions.clipboard.ClipboardItem; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.server.network.ServerPlayerEntity; @@ -61,7 +61,7 @@ public class ConfigureInstructionGui extends InstructionBoundSimpleGui { .setName(Text.translatable("minions.gui.instruction.configure.copy")) .addLoreLine(Text.translatable("minions.gui.instruction.configure.copy.description")) .setCallback(() -> { - player.getInventory().offer(ReferenceItem.createInstructionReference(minion, name), true); + player.getInventory().offer(ClipboardItem.createInstructionReference(minion, name), true); player.playSoundToPlayer(SoundEvents.BLOCK_NOTE_BLOCK_CHIME.value(), SoundCategory.BLOCKS, 1, 1); }) ); diff --git a/src/main/java/io/github/skippyall/minions/gui/GuiDisplay.java b/src/main/java/io/github/skippyall/minions/gui/GuiDisplay.java index 0622d83..3a8ae6a 100644 --- a/src/main/java/io/github/skippyall/minions/gui/GuiDisplay.java +++ b/src/main/java/io/github/skippyall/minions/gui/GuiDisplay.java @@ -3,7 +3,6 @@ package io.github.skippyall.minions.gui; import com.mojang.authlib.properties.PropertyMap; import com.mojang.serialization.Codec; import io.github.skippyall.minions.registration.MinionRegistries; -import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.util.TranslationUtil; import it.unimi.dsi.fastutil.objects.ReferenceSortedSets; import net.minecraft.component.DataComponentTypes; @@ -141,11 +140,4 @@ public interface GuiDisplay { return CODEC; } } - - static void register() { - Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "item"), ItemBased.CODEC); - Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "model"), ModelBased.CODEC); - Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "head"), HeadBased.CODEC); - Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "stack"), StackBased.CODEC); - } } diff --git a/src/main/java/io/github/skippyall/minions/gui/InstructionGui.java b/src/main/java/io/github/skippyall/minions/gui/InstructionGui.java index 0ec7ec2..34b3f79 100644 --- a/src/main/java/io/github/skippyall/minions/gui/InstructionGui.java +++ b/src/main/java/io/github/skippyall/minions/gui/InstructionGui.java @@ -2,6 +2,7 @@ package io.github.skippyall.minions.gui; import eu.pb4.sgui.api.elements.GuiElementBuilder; import eu.pb4.sgui.api.gui.SimpleGui; +import io.github.skippyall.minions.registration.MinionComponentTypes; import io.github.skippyall.minions.registration.MinionRegistries; import io.github.skippyall.minions.gui.input.Result; import io.github.skippyall.minions.gui.input.TextInput; @@ -171,7 +172,7 @@ public class InstructionGui { for (int i = 0; i < minion.getModuleInventory().size(); i++) { ItemStack moduleItem = minion.getModuleInventory().getStack(i); - MinionModule module = moduleItem.get(MinionModule.COMPONENT_TYPE); + MinionModule module = moduleItem.get(MinionComponentTypes.MODULE); if (module != null && !module.instructions().isEmpty()) { gui.addSlot(new GuiElementBuilder(moduleItem) .setCallback(() -> selectInstructionMenu(module, minion, player) diff --git a/src/main/java/io/github/skippyall/minions/gui/MinionLookGui.java b/src/main/java/io/github/skippyall/minions/gui/MinionLookGui.java index ce0355e..5526426 100644 --- a/src/main/java/io/github/skippyall/minions/gui/MinionLookGui.java +++ b/src/main/java/io/github/skippyall/minions/gui/MinionLookGui.java @@ -8,7 +8,7 @@ import io.github.skippyall.minions.minion.MinionData; import io.github.skippyall.minions.minion.MinionItem; import io.github.skippyall.minions.minion.MinionProfileUtils; import io.github.skippyall.minions.minion.skin.SkinProvider; -import io.github.skippyall.minions.minion.skin.SkinProviders; +import io.github.skippyall.minions.registration.SkinProviders; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.ProfileComponent; import net.minecraft.item.ItemStack; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/ActionExecution.java b/src/main/java/io/github/skippyall/minions/instruction/ActionExecution.java similarity index 91% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/ActionExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/ActionExecution.java index 6019c3a..fe03bd3 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/ActionExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/ActionExecution.java @@ -1,8 +1,9 @@ -package io.github.skippyall.minions.program.instruction.execution; +package io.github.skippyall.minions.instruction; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack; import io.github.skippyall.minions.program.consumer.ValueConsumerList; +import io.github.skippyall.minions.program.instruction.execution.ContinuousInstructionExecution; import io.github.skippyall.minions.program.supplier.ValueSupplierList; import net.minecraft.storage.ReadView; import net.minecraft.storage.WriteView; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/MineBlockExecution.java b/src/main/java/io/github/skippyall/minions/instruction/MineBlockExecution.java similarity index 98% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/MineBlockExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/MineBlockExecution.java index 81aba51..9d71cb6 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/MineBlockExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/MineBlockExecution.java @@ -1,5 +1,5 @@ //partially code from https://github.com/gnembon/fabric-carpet (EntityPlayerActionPack) -package io.github.skippyall.minions.program.instruction.execution; +package io.github.skippyall.minions.instruction; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/inventory/SwapItemExecution.java b/src/main/java/io/github/skippyall/minions/instruction/inventory/SwapItemExecution.java similarity index 98% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/inventory/SwapItemExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/inventory/SwapItemExecution.java index e41b289..188d15d 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/inventory/SwapItemExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/inventory/SwapItemExecution.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.program.instruction.execution.inventory; +package io.github.skippyall.minions.instruction.inventory; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/AbstractTurnExecution.java b/src/main/java/io/github/skippyall/minions/instruction/move/AbstractTurnExecution.java similarity index 94% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/AbstractTurnExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/move/AbstractTurnExecution.java index 69733e3..e5781a7 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/AbstractTurnExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/AbstractTurnExecution.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.instruction.InstructionExecution; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/ContinuousWalkExecution.java b/src/main/java/io/github/skippyall/minions/instruction/move/ContinuousWalkExecution.java similarity index 90% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/ContinuousWalkExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/move/ContinuousWalkExecution.java index 190e6a3..7d4d379 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/ContinuousWalkExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/ContinuousWalkExecution.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.instruction.InstructionExecution; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnDirection.java b/src/main/java/io/github/skippyall/minions/instruction/move/TurnDirection.java similarity index 95% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnDirection.java rename to src/main/java/io/github/skippyall/minions/instruction/move/TurnDirection.java index 0b7abee..17208d7 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnDirection.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/TurnDirection.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import com.mojang.serialization.Codec; import io.github.skippyall.minions.gui.Displayable; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnExecution.java b/src/main/java/io/github/skippyall/minions/instruction/move/TurnExecution.java similarity index 87% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/move/TurnExecution.java index 59085b8..12445ca 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/TurnExecution.java @@ -1,9 +1,9 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.supplier.ValueSupplierList; import io.github.skippyall.minions.program.supplier.Parameter; -import io.github.skippyall.minions.program.value.ValueTypes; +import io.github.skippyall.minions.registration.ValueTypes; public class TurnExecution extends AbstractTurnExecution { public static final Parameter ANGLE = new Parameter<>("maxAngle", ValueTypes.DOUBLE); diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnVectorExecution.java b/src/main/java/io/github/skippyall/minions/instruction/move/TurnVectorExecution.java similarity index 92% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnVectorExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/move/TurnVectorExecution.java index 7d4e1a4..ae01c50 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/TurnVectorExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/TurnVectorExecution.java @@ -1,9 +1,9 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.supplier.Parameter; import io.github.skippyall.minions.program.supplier.ValueSupplierList; -import io.github.skippyall.minions.program.value.ValueTypes; +import io.github.skippyall.minions.registration.ValueTypes; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec2f; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/WalkExecution.java b/src/main/java/io/github/skippyall/minions/instruction/move/WalkExecution.java similarity index 93% rename from src/main/java/io/github/skippyall/minions/program/instruction/execution/move/WalkExecution.java rename to src/main/java/io/github/skippyall/minions/instruction/move/WalkExecution.java index 6a05b80..92a0529 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/execution/move/WalkExecution.java +++ b/src/main/java/io/github/skippyall/minions/instruction/move/WalkExecution.java @@ -1,10 +1,10 @@ -package io.github.skippyall.minions.program.instruction.execution.move; +package io.github.skippyall.minions.instruction.move; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.instruction.InstructionExecution; import io.github.skippyall.minions.program.supplier.Parameter; import io.github.skippyall.minions.program.supplier.ValueSupplierList; -import io.github.skippyall.minions.program.value.ValueTypes; +import io.github.skippyall.minions.registration.ValueTypes; import net.minecraft.entity.MovementType; import net.minecraft.storage.ReadView; import net.minecraft.storage.WriteView; diff --git a/src/main/java/io/github/skippyall/minions/block/BlockEntityMinionInstructionListener.java b/src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionInstructionListener.java similarity index 97% rename from src/main/java/io/github/skippyall/minions/block/BlockEntityMinionInstructionListener.java rename to src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionInstructionListener.java index 1d9be71..9260508 100644 --- a/src/main/java/io/github/skippyall/minions/block/BlockEntityMinionInstructionListener.java +++ b/src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionInstructionListener.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.block; +package io.github.skippyall.minions.listener; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; import io.github.skippyall.minions.program.instruction.ConfiguredInstructionListener; diff --git a/src/main/java/io/github/skippyall/minions/block/BlockEntityMinionListener.java b/src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionListener.java similarity index 98% rename from src/main/java/io/github/skippyall/minions/block/BlockEntityMinionListener.java rename to src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionListener.java index 010730d..c8b5495 100644 --- a/src/main/java/io/github/skippyall/minions/block/BlockEntityMinionListener.java +++ b/src/main/java/io/github/skippyall/minions/listener/BlockEntityMinionListener.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.block; +package io.github.skippyall.minions.listener; import com.mojang.datafixers.util.Function3; import com.mojang.serialization.Codec; diff --git a/src/main/java/io/github/skippyall/minions/util/ListenerManager.java b/src/main/java/io/github/skippyall/minions/listener/ListenerManager.java similarity index 96% rename from src/main/java/io/github/skippyall/minions/util/ListenerManager.java rename to src/main/java/io/github/skippyall/minions/listener/ListenerManager.java index 131602f..6d33f3d 100644 --- a/src/main/java/io/github/skippyall/minions/util/ListenerManager.java +++ b/src/main/java/io/github/skippyall/minions/listener/ListenerManager.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.util; +package io.github.skippyall.minions.listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/io/github/skippyall/minions/util/SerializableListenerManager.java b/src/main/java/io/github/skippyall/minions/listener/SerializableListenerManager.java similarity index 98% rename from src/main/java/io/github/skippyall/minions/util/SerializableListenerManager.java rename to src/main/java/io/github/skippyall/minions/listener/SerializableListenerManager.java index e7607d1..48d6aaa 100644 --- a/src/main/java/io/github/skippyall/minions/util/SerializableListenerManager.java +++ b/src/main/java/io/github/skippyall/minions/listener/SerializableListenerManager.java @@ -1,4 +1,4 @@ -package io.github.skippyall.minions.util; +package io.github.skippyall.minions.listener; import com.mojang.serialization.Codec; import net.minecraft.registry.Registry; diff --git a/src/main/java/io/github/skippyall/minions/minion/MinionData.java b/src/main/java/io/github/skippyall/minions/minion/MinionData.java index c1482d6..bc12073 100644 --- a/src/main/java/io/github/skippyall/minions/minion/MinionData.java +++ b/src/main/java/io/github/skippyall/minions/minion/MinionData.java @@ -3,15 +3,9 @@ package io.github.skippyall.minions.minion; import com.mojang.authlib.properties.PropertyMap; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import eu.pb4.polymer.core.api.other.PolymerComponent; import io.github.skippyall.minions.registration.MinionRegistries; -import io.github.skippyall.minions.Minions; -import io.github.skippyall.minions.util.SerializableListenerManager; -import net.minecraft.component.ComponentType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; +import io.github.skippyall.minions.listener.SerializableListenerManager; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.Identifier; import net.minecraft.util.Uuids; import net.minecraft.util.dynamic.Codecs; @@ -32,8 +26,6 @@ public record MinionData(UUID uuid, String name, Optional skin, boo ).apply(instance, MinionData::new) ); - public static final ComponentType COMPONENT = Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(Minions.MOD_ID, "minion_data"), ComponentType.builder().codec(Uuids.CODEC).build()); - public static MinionData createDefault(MinecraftServer server) { return new MinionData(UUID.randomUUID(), MinionProfileUtils.newDefaultMinionName(server), Optional.empty(), false, new SerializableListenerManager<>(MinionRegistries.MINION_LISTENER_CODECS)); } @@ -49,8 +41,4 @@ public record MinionData(UUID uuid, String name, Optional skin, boo public MinionData withSpawned(boolean isSpawned) { return new MinionData(uuid, name, skin, isSpawned, listeners); } - - public static void register() { - PolymerComponent.registerDataComponent(COMPONENT); - } } diff --git a/src/main/java/io/github/skippyall/minions/minion/MinionItem.java b/src/main/java/io/github/skippyall/minions/minion/MinionItem.java index 56ebd68..d3085db 100644 --- a/src/main/java/io/github/skippyall/minions/minion/MinionItem.java +++ b/src/main/java/io/github/skippyall/minions/minion/MinionItem.java @@ -4,6 +4,7 @@ import eu.pb4.polymer.core.api.item.PolymerItem; import eu.pb4.polymer.core.api.item.PolymerItemUtils; import io.github.skippyall.minions.gui.MinionLookGui; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; +import io.github.skippyall.minions.registration.MinionComponentTypes; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.TooltipDisplayComponent; import net.minecraft.entity.player.PlayerEntity; @@ -78,14 +79,14 @@ public class MinionItem extends Item implements PolymerItem { } public static void setData(MinecraftServer server, MinionData data, ItemStack item) { - item.set(MinionData.COMPONENT, data.uuid()); + item.set(MinionComponentTypes.MINION_DATA, data.uuid()); MinionPersistentState.get(server).updateMinionData(data); } @Nullable public static MinionData getData(MinecraftServer server, ItemStack item) { - if(item.contains(MinionData.COMPONENT)) { - return MinionPersistentState.get(server).getMinionData(item.get(MinionData.COMPONENT)); + if(item.contains(MinionComponentTypes.MINION_DATA)) { + return MinionPersistentState.get(server).getMinionData(item.get(MinionComponentTypes.MINION_DATA)); } return null; } @@ -100,6 +101,6 @@ public class MinionItem extends Item implements PolymerItem { } public static boolean containsData(ItemStack item) { - return item.contains(MinionData.COMPONENT); + return item.contains(MinionComponentTypes.MINION_DATA); } } diff --git a/src/main/java/io/github/skippyall/minions/minion/MinionListener.java b/src/main/java/io/github/skippyall/minions/minion/MinionListener.java index b18a285..b643e5f 100644 --- a/src/main/java/io/github/skippyall/minions/minion/MinionListener.java +++ b/src/main/java/io/github/skippyall/minions/minion/MinionListener.java @@ -2,7 +2,7 @@ package io.github.skippyall.minions.minion; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; import io.github.skippyall.minions.program.instruction.ConfiguredInstruction; -import io.github.skippyall.minions.util.SerializableListenerManager; +import io.github.skippyall.minions.listener.SerializableListenerManager; import org.jetbrains.annotations.Nullable; public interface MinionListener extends SerializableListenerManager.SerializableListener { diff --git a/src/main/java/io/github/skippyall/minions/minion/fakeplayer/MinionFakePlayer.java b/src/main/java/io/github/skippyall/minions/minion/fakeplayer/MinionFakePlayer.java index 59225e6..0ae6574 100644 --- a/src/main/java/io/github/skippyall/minions/minion/fakeplayer/MinionFakePlayer.java +++ b/src/main/java/io/github/skippyall/minions/minion/fakeplayer/MinionFakePlayer.java @@ -12,8 +12,8 @@ import io.github.skippyall.minions.minion.MinionItem; import io.github.skippyall.minions.minion.MinionPersistentState; import io.github.skippyall.minions.minion.MinionProfileUtils; import io.github.skippyall.minions.module.ModuleInventory; -import io.github.skippyall.minions.module.SpecialAbilities; -import io.github.skippyall.minions.util.SerializableListenerManager; +import io.github.skippyall.minions.registration.SpecialAbilities; +import io.github.skippyall.minions.listener.SerializableListenerManager; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EquipmentSlot; diff --git a/src/main/java/io/github/skippyall/minions/module/MinionModule.java b/src/main/java/io/github/skippyall/minions/module/MinionModule.java index c846991..15f1d6d 100644 --- a/src/main/java/io/github/skippyall/minions/module/MinionModule.java +++ b/src/main/java/io/github/skippyall/minions/module/MinionModule.java @@ -2,15 +2,9 @@ package io.github.skippyall.minions.module; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import eu.pb4.polymer.core.api.other.PolymerComponent; import io.github.skippyall.minions.registration.MinionRegistries; -import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.program.instruction.InstructionType; -import net.minecraft.component.ComponentType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; import java.util.List; @@ -22,8 +16,6 @@ public record MinionModule(List> instructions, Li ).apply(instance, MinionModule::new) ); - public static final ComponentType COMPONENT_TYPE = ComponentType.builder().codec(CODEC).build(); - public static final MinionModule EMPTY = new MinionModule(List.of()); public MinionModule(List> instructions) { @@ -34,9 +26,4 @@ public record MinionModule(List> instructions, Li this.instructions = List.copyOf(instructions); this.specialAbilities = List.copyOf(specialAbilities); } - - public static void register() { - Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(Minions.MOD_ID, "minion_module"), COMPONENT_TYPE); - PolymerComponent.registerDataComponent(COMPONENT_TYPE); - } } diff --git a/src/main/java/io/github/skippyall/minions/module/ModuleInventory.java b/src/main/java/io/github/skippyall/minions/module/ModuleInventory.java index 8490bea..fcf7b3c 100644 --- a/src/main/java/io/github/skippyall/minions/module/ModuleInventory.java +++ b/src/main/java/io/github/skippyall/minions/module/ModuleInventory.java @@ -3,6 +3,7 @@ package io.github.skippyall.minions.module; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; import io.github.skippyall.minions.program.instruction.InstructionType; +import io.github.skippyall.minions.registration.MinionComponentTypes; import net.minecraft.inventory.Inventories; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; @@ -41,7 +42,7 @@ public class ModuleInventory extends SimpleInventory { @Override public boolean isValid(int slot, ItemStack stack) { - return (stack.getCount() <= getMaxCountPerStack()) && stack.contains(MinionModule.COMPONENT_TYPE); + return (stack.getCount() <= getMaxCountPerStack()) && stack.contains(MinionComponentTypes.MODULE); } @Override @@ -59,7 +60,7 @@ public class ModuleInventory extends SimpleInventory { instructions.clear(); specialAbilities.clear(); for (ItemStack heldStack : heldStacks) { - MinionModule module = heldStack.get(MinionModule.COMPONENT_TYPE); + MinionModule module = heldStack.get(MinionComponentTypes.MODULE); if(module != null) { modules.add(module); instructions.addAll(module.instructions()); diff --git a/src/main/java/io/github/skippyall/minions/module/SpecialAbilities.java b/src/main/java/io/github/skippyall/minions/module/SpecialAbilities.java deleted file mode 100644 index 9deed87..0000000 --- a/src/main/java/io/github/skippyall/minions/module/SpecialAbilities.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.github.skippyall.minions.module; - -import io.github.skippyall.minions.registration.MinionRegistries; -import io.github.skippyall.minions.Minions; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -public class SpecialAbilities { - public static final MobSpawningAbility MOB_SPAWNING = Registry.register(MinionRegistries.SPECIAL_ABILITIES, Identifier.of(Minions.MOD_ID, "mob_spawning"), new MobSpawningAbility()); -} diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstruction.java b/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstruction.java index 84ff787..0e16e83 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstruction.java +++ b/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstruction.java @@ -6,7 +6,7 @@ import io.github.skippyall.minions.program.InstructionRuntime; import io.github.skippyall.minions.program.supplier.Parameter; import io.github.skippyall.minions.program.supplier.ValueSupplierList; import io.github.skippyall.minions.program.consumer.ValueConsumerList; -import io.github.skippyall.minions.util.SerializableListenerManager; +import io.github.skippyall.minions.listener.SerializableListenerManager; import net.minecraft.storage.ReadView; import net.minecraft.storage.WriteView; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstructionListener.java b/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstructionListener.java index 13e863f..f791af3 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstructionListener.java +++ b/src/main/java/io/github/skippyall/minions/program/instruction/ConfiguredInstructionListener.java @@ -1,7 +1,7 @@ package io.github.skippyall.minions.program.instruction; import io.github.skippyall.minions.program.supplier.Parameter; -import io.github.skippyall.minions.util.SerializableListenerManager; +import io.github.skippyall.minions.listener.SerializableListenerManager; public interface ConfiguredInstructionListener extends SerializableListenerManager.SerializableListener { default void onRun(ConfiguredInstruction instruction) {} diff --git a/src/main/java/io/github/skippyall/minions/reference/Reference.java b/src/main/java/io/github/skippyall/minions/reference/Reference.java deleted file mode 100644 index 4230c1c..0000000 --- a/src/main/java/io/github/skippyall/minions/reference/Reference.java +++ /dev/null @@ -1,31 +0,0 @@ -package io.github.skippyall.minions.reference; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.MapCodec; -import eu.pb4.polymer.core.api.other.PolymerComponent; -import io.github.skippyall.minions.registration.MinionRegistries; -import io.github.skippyall.minions.Minions; -import net.fabricmc.fabric.api.item.v1.ComponentTooltipAppenderRegistry; -import net.minecraft.component.ComponentType; -import net.minecraft.item.tooltip.TooltipAppender; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -import java.util.function.Function; - -public interface Reference extends TooltipAppender { - Codec CODEC = MinionRegistries.REFERENCE_CODEC.getCodec().dispatch(Reference::getCodec, Function.identity()); - ComponentType COMPONENT_TYPE = ComponentType.builder().codec(CODEC).build(); - - MapCodec getCodec(); - - static void register() { - Registry.register(MinionRegistries.REFERENCE_CODEC, Identifier.of(Minions.MOD_ID, "instruction"), InstructionReference.CODEC); - - Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(Minions.MOD_ID, "reference"), COMPONENT_TYPE); - PolymerComponent.registerDataComponent(COMPONENT_TYPE); - - ComponentTooltipAppenderRegistry.addFirst(COMPONENT_TYPE); - } -} diff --git a/src/main/java/io/github/skippyall/minions/registration/ClipboardTypes.java b/src/main/java/io/github/skippyall/minions/registration/ClipboardTypes.java new file mode 100644 index 0000000..a90d79d --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/registration/ClipboardTypes.java @@ -0,0 +1,18 @@ +package io.github.skippyall.minions.registration; + +import com.mojang.serialization.MapCodec; +import io.github.skippyall.minions.Minions; +import io.github.skippyall.minions.clipboard.InstructionClipboard; +import io.github.skippyall.minions.clipboard.Clipboard; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +public class ClipboardTypes { + private static void register(String id, MapCodec codec) { + Registry.register(MinionRegistries.CLIPBOARD_TYPES, Identifier.of(Minions.MOD_ID, id), codec); + } + + static void register() { + register("instruction", InstructionClipboard.CODEC); + } +} diff --git a/src/main/java/io/github/skippyall/minions/registration/GuiDisplayTypes.java b/src/main/java/io/github/skippyall/minions/registration/GuiDisplayTypes.java new file mode 100644 index 0000000..2bff144 --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/registration/GuiDisplayTypes.java @@ -0,0 +1,15 @@ +package io.github.skippyall.minions.registration; + +import io.github.skippyall.minions.Minions; +import io.github.skippyall.minions.gui.GuiDisplay; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +public class GuiDisplayTypes { + static void register() { + Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "item"), GuiDisplay.ItemBased.CODEC); + Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "model"), GuiDisplay.ModelBased.CODEC); + Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "head"), GuiDisplay.HeadBased.CODEC); + Registry.register(MinionRegistries.GUI_DISPLAY_TYPE, Identifier.of(Minions.MOD_ID, "stack"), GuiDisplay.StackBased.CODEC); + } +} diff --git a/src/main/java/io/github/skippyall/minions/program/instruction/Instructions.java b/src/main/java/io/github/skippyall/minions/registration/Instructions.java similarity index 80% rename from src/main/java/io/github/skippyall/minions/program/instruction/Instructions.java rename to src/main/java/io/github/skippyall/minions/registration/Instructions.java index 8c8685b..509dd2c 100644 --- a/src/main/java/io/github/skippyall/minions/program/instruction/Instructions.java +++ b/src/main/java/io/github/skippyall/minions/registration/Instructions.java @@ -1,15 +1,16 @@ -package io.github.skippyall.minions.program.instruction; +package io.github.skippyall.minions.registration; -import io.github.skippyall.minions.registration.MinionRegistries; +import io.github.skippyall.minions.program.instruction.InstructionExecution; +import io.github.skippyall.minions.program.instruction.InstructionType; import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack; -import io.github.skippyall.minions.program.instruction.execution.ActionExecution; -import io.github.skippyall.minions.program.instruction.execution.MineBlockExecution; -import io.github.skippyall.minions.program.instruction.execution.move.ContinuousWalkExecution; -import io.github.skippyall.minions.program.instruction.execution.move.TurnExecution; -import io.github.skippyall.minions.program.instruction.execution.move.TurnVectorExecution; -import io.github.skippyall.minions.program.instruction.execution.move.WalkExecution; +import io.github.skippyall.minions.instruction.ActionExecution; +import io.github.skippyall.minions.instruction.MineBlockExecution; +import io.github.skippyall.minions.instruction.move.ContinuousWalkExecution; +import io.github.skippyall.minions.instruction.move.TurnExecution; +import io.github.skippyall.minions.instruction.move.TurnVectorExecution; +import io.github.skippyall.minions.instruction.move.WalkExecution; import io.github.skippyall.minions.program.supplier.Parameter; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; diff --git a/src/main/java/io/github/skippyall/minions/registration/MinionComponentTypes.java b/src/main/java/io/github/skippyall/minions/registration/MinionComponentTypes.java new file mode 100644 index 0000000..3d00933 --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/registration/MinionComponentTypes.java @@ -0,0 +1,30 @@ +package io.github.skippyall.minions.registration; + +import eu.pb4.polymer.core.api.other.PolymerComponent; +import io.github.skippyall.minions.Minions; +import io.github.skippyall.minions.module.MinionModule; +import io.github.skippyall.minions.clipboard.Clipboard; +import net.fabricmc.fabric.api.item.v1.ComponentTooltipAppenderRegistry; +import net.minecraft.component.ComponentType; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; +import net.minecraft.util.Uuids; + +import java.util.UUID; + +public class MinionComponentTypes { + public static final ComponentType MINION_DATA = register("minion_data", ComponentType.builder().codec(Uuids.CODEC).build()); + public static final ComponentType MODULE = register("minion_module", ComponentType.builder().codec(MinionModule.CODEC).build()); + public static final ComponentType REFERENCE = ComponentType.builder().codec(Clipboard.CODEC).build(); + + private static > T register(String name, T type) { + Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(Minions.MOD_ID, name), type); + PolymerComponent.registerDataComponent(type); + return type; + } + + public static void register() { + ComponentTooltipAppenderRegistry.addFirst(MinionComponentTypes.REFERENCE); + } +} diff --git a/src/main/java/io/github/skippyall/minions/registration/MinionItems.java b/src/main/java/io/github/skippyall/minions/registration/MinionItems.java index 8ddebd9..f6b09c6 100644 --- a/src/main/java/io/github/skippyall/minions/registration/MinionItems.java +++ b/src/main/java/io/github/skippyall/minions/registration/MinionItems.java @@ -6,11 +6,9 @@ import io.github.skippyall.minions.block.miniontrigger.MinionTriggerBlockItem; import io.github.skippyall.minions.minion.MinionItem; import io.github.skippyall.minions.minion.MinionRuntime; import io.github.skippyall.minions.module.MinionModule; -import io.github.skippyall.minions.module.SpecialAbilities; import io.github.skippyall.minions.module.SpecialAbility; import io.github.skippyall.minions.program.instruction.InstructionType; -import io.github.skippyall.minions.program.instruction.Instructions; -import io.github.skippyall.minions.reference.ReferenceItem; +import io.github.skippyall.minions.clipboard.ClipboardItem; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.DamageResistantComponent; import net.minecraft.entity.damage.DamageType; @@ -78,7 +76,7 @@ public class MinionItems { new Item.Settings().useBlockPrefixedTranslationKey() ); - public static final ReferenceItem REFERENCE_ITEM = registerItem(Identifier.of(MOD_ID, "reference"), ReferenceItem::new); + public static final ClipboardItem REFERENCE_ITEM = registerItem(Identifier.of(MOD_ID, "clipboard"), ClipboardItem::new); public static T registerItem(Identifier identifier, Function constructor, Item.Settings settings) { T item = constructor.apply(settings.registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); @@ -96,7 +94,7 @@ public class MinionItems { return registerItem( identifier, settings -> new SimplePolymerItem(settings, vanillaItem), - new Item.Settings().component(MinionModule.COMPONENT_TYPE, new MinionModule(instructionTypes, specialAbilities)) + new Item.Settings().component(MinionComponentTypes.MODULE, new MinionModule(instructionTypes, specialAbilities)) ); } diff --git a/src/main/java/io/github/skippyall/minions/registration/MinionListeners.java b/src/main/java/io/github/skippyall/minions/registration/MinionListeners.java new file mode 100644 index 0000000..0472544 --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/registration/MinionListeners.java @@ -0,0 +1,12 @@ +package io.github.skippyall.minions.registration; + +import io.github.skippyall.minions.Minions; +import io.github.skippyall.minions.block.miniontrigger.MinionTriggerMinionListener; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +public class MinionListeners { + public static void register() { + Registry.register(MinionRegistries.MINION_LISTENER_CODECS, Identifier.of(Minions.MOD_ID, "minion_trigger"), MinionTriggerMinionListener.CODEC); + } +} diff --git a/src/main/java/io/github/skippyall/minions/registration/MinionRegistration.java b/src/main/java/io/github/skippyall/minions/registration/MinionRegistration.java index e4bc3ef..62de12b 100644 --- a/src/main/java/io/github/skippyall/minions/registration/MinionRegistration.java +++ b/src/main/java/io/github/skippyall/minions/registration/MinionRegistration.java @@ -1,13 +1,21 @@ package io.github.skippyall.minions.registration; -import io.github.skippyall.minions.Minions; -import io.github.skippyall.minions.block.miniontrigger.MinionTriggerMinionListener; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - public class MinionRegistration { - public static void register() { - Registry.register(MinionRegistries.MINION_LISTENER_CODECS, Identifier.of(Minions.MOD_ID, "minion_trigger"), MinionTriggerMinionListener.CODEC); + MinionRegistries.register(); + + ClipboardTypes.register(); + GuiDisplayTypes.register(); + Instructions.register(); + MinionBlocks.register(); + MinionComponentTypes.register(); + MinionItems.register(); + MinionListeners.register(); + SkinProviders.register(); + SpecialAbilities.register(); + ValueSuppliers.register(); + ValueTypes.register(); + + MinionCreativeTab.registerGroup(); } } diff --git a/src/main/java/io/github/skippyall/minions/registration/MinionRegistries.java b/src/main/java/io/github/skippyall/minions/registration/MinionRegistries.java index 9b0c17c..f7f55a1 100644 --- a/src/main/java/io/github/skippyall/minions/registration/MinionRegistries.java +++ b/src/main/java/io/github/skippyall/minions/registration/MinionRegistries.java @@ -14,7 +14,7 @@ import io.github.skippyall.minions.program.supplier.ValueSupplierType; import io.github.skippyall.minions.program.instruction.InstructionType; import io.github.skippyall.minions.program.consumer.ValueConsumerType; import io.github.skippyall.minions.program.value.ValueType; -import io.github.skippyall.minions.reference.Reference; +import io.github.skippyall.minions.clipboard.Clipboard; import net.fabricmc.fabric.api.event.registry.DynamicRegistries; import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; import net.fabricmc.fabric.api.event.registry.RegistryAttribute; @@ -31,7 +31,7 @@ public class MinionRegistries { public static final Registry> GUI_DISPLAY_TYPE = registry("gui_display_type"); public static final Registry> INSTRUCTION_LISTENER_CODECS = registry("instruction_listener_codec"); public static final Registry> MINION_LISTENER_CODECS = registry("minion_listener_codec"); - public static final Registry> REFERENCE_CODEC = registry("reference_codec"); + public static final Registry> CLIPBOARD_TYPES = registry("clipboard_type"); public static final Registry SPECIAL_ABILITIES = registry("special_ability"); public static final RegistryKey> GUI_DISPLAY = key("gui_display"); diff --git a/src/main/java/io/github/skippyall/minions/minion/skin/SkinProviders.java b/src/main/java/io/github/skippyall/minions/registration/SkinProviders.java similarity index 68% rename from src/main/java/io/github/skippyall/minions/minion/skin/SkinProviders.java rename to src/main/java/io/github/skippyall/minions/registration/SkinProviders.java index c36a69d..125424c 100644 --- a/src/main/java/io/github/skippyall/minions/minion/skin/SkinProviders.java +++ b/src/main/java/io/github/skippyall/minions/registration/SkinProviders.java @@ -1,6 +1,9 @@ -package io.github.skippyall.minions.minion.skin; +package io.github.skippyall.minions.registration; -import io.github.skippyall.minions.registration.MinionRegistries; +import io.github.skippyall.minions.minion.skin.Base64SkinProvider; +import io.github.skippyall.minions.minion.skin.NameSkinProvider; +import io.github.skippyall.minions.minion.skin.SkinProvider; +import io.github.skippyall.minions.minion.skin.UUIDSkinProvider; import io.github.skippyall.minions.Minions; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; diff --git a/src/main/java/io/github/skippyall/minions/registration/SpecialAbilities.java b/src/main/java/io/github/skippyall/minions/registration/SpecialAbilities.java new file mode 100644 index 0000000..2e9af45 --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/registration/SpecialAbilities.java @@ -0,0 +1,18 @@ +package io.github.skippyall.minions.registration; + +import io.github.skippyall.minions.module.MobSpawningAbility; +import io.github.skippyall.minions.Minions; +import io.github.skippyall.minions.module.SpecialAbility; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +public class SpecialAbilities { + public static final MobSpawningAbility MOB_SPAWNING = register("mob_spawning", new MobSpawningAbility()); + + private static T register(String name, T type) { + Registry.register(MinionRegistries.SPECIAL_ABILITIES, Identifier.of(Minions.MOD_ID, name), type); + return type; + } + + public static void register() {} +} diff --git a/src/main/java/io/github/skippyall/minions/program/supplier/ValueSuppliers.java b/src/main/java/io/github/skippyall/minions/registration/ValueSuppliers.java similarity index 75% rename from src/main/java/io/github/skippyall/minions/program/supplier/ValueSuppliers.java rename to src/main/java/io/github/skippyall/minions/registration/ValueSuppliers.java index 5ca0eb2..b7ea886 100644 --- a/src/main/java/io/github/skippyall/minions/program/supplier/ValueSuppliers.java +++ b/src/main/java/io/github/skippyall/minions/registration/ValueSuppliers.java @@ -1,6 +1,7 @@ -package io.github.skippyall.minions.program.supplier; +package io.github.skippyall.minions.registration; -import io.github.skippyall.minions.registration.MinionRegistries; +import io.github.skippyall.minions.program.supplier.FixedValueSupplierType; +import io.github.skippyall.minions.program.supplier.ValueSupplierType; import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.minion.MinionRuntime; import net.minecraft.registry.Registry; diff --git a/src/main/java/io/github/skippyall/minions/program/value/ValueTypes.java b/src/main/java/io/github/skippyall/minions/registration/ValueTypes.java similarity index 91% rename from src/main/java/io/github/skippyall/minions/program/value/ValueTypes.java rename to src/main/java/io/github/skippyall/minions/registration/ValueTypes.java index 6d3dbf9..524c981 100644 --- a/src/main/java/io/github/skippyall/minions/program/value/ValueTypes.java +++ b/src/main/java/io/github/skippyall/minions/registration/ValueTypes.java @@ -1,11 +1,11 @@ -package io.github.skippyall.minions.program.value; +package io.github.skippyall.minions.registration; import com.mojang.serialization.Codec; -import io.github.skippyall.minions.registration.MinionRegistries; +import io.github.skippyall.minions.program.value.ValueType; import io.github.skippyall.minions.Minions; import io.github.skippyall.minions.gui.input.ChoiceInput; import io.github.skippyall.minions.gui.input.TextInput; -import io.github.skippyall.minions.program.instruction.execution.move.TurnDirection; +import io.github.skippyall.minions.instruction.move.TurnDirection; import net.minecraft.registry.Registry; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text;