Refactoring
This commit is contained in:
@@ -22,7 +22,7 @@ public class MinionMixinConfigPlugin implements IMixinConfigPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
||||||
if(mixinClassName.startsWith("io.github.skippyall.mixins.compat.universal_graves.")) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,9 @@ package io.github.skippyall.minions;
|
|||||||
|
|
||||||
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
|
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
|
||||||
import io.github.skippyall.minions.command.MinionsCommand;
|
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.fakeplayer.MinionFakePlayer;
|
||||||
import io.github.skippyall.minions.minion.MinionData;
|
|
||||||
import io.github.skippyall.minions.minion.MinionPersistentState;
|
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.MinionRegistration;
|
||||||
import io.github.skippyall.minions.registration.MinionRegistries;
|
|
||||||
import io.github.skippyall.minions.util.PolymerUtil;
|
import io.github.skippyall.minions.util.PolymerUtil;
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
|
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
|
||||||
@@ -31,21 +19,6 @@ public class Minions implements ModInitializer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
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();
|
MinionRegistration.register();
|
||||||
|
|
||||||
PolymerUtil.register();
|
PolymerUtil.register();
|
||||||
|
|||||||
+4
-5
@@ -11,14 +11,13 @@ import eu.pb4.polymer.virtualentity.api.elements.ItemDisplayElement;
|
|||||||
import io.github.skippyall.minions.registration.MinionBlocks;
|
import io.github.skippyall.minions.registration.MinionBlocks;
|
||||||
import io.github.skippyall.minions.Minions;
|
import io.github.skippyall.minions.Minions;
|
||||||
import io.github.skippyall.minions.minion.MinionPersistentState;
|
import io.github.skippyall.minions.minion.MinionPersistentState;
|
||||||
import io.github.skippyall.minions.reference.InstructionReference;
|
import io.github.skippyall.minions.clipboard.InstructionClipboard;
|
||||||
import io.github.skippyall.minions.reference.Reference;
|
import io.github.skippyall.minions.registration.MinionComponentTypes;
|
||||||
import io.github.skippyall.minions.util.PolymerUtil;
|
import io.github.skippyall.minions.util.PolymerUtil;
|
||||||
import net.minecraft.block.AbstractRedstoneGateBlock;
|
import net.minecraft.block.AbstractRedstoneGateBlock;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.BlockWithEntity;
|
import net.minecraft.block.BlockWithEntity;
|
||||||
import net.minecraft.block.Blocks;
|
|
||||||
import net.minecraft.block.ShapeContext;
|
import net.minecraft.block.ShapeContext;
|
||||||
import net.minecraft.block.SideShapeType;
|
import net.minecraft.block.SideShapeType;
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
@@ -86,7 +85,7 @@ public class MinionTriggerBlock extends BlockWithEntity implements PolymerBlock,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
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 -> {
|
world.getBlockEntity(pos, MinionBlocks.MINION_TRIGGER_BE_TYPE).ifPresent(be -> {
|
||||||
be.setInstruction(instruction.selectedMinion(), instruction.selectedInstruction());
|
be.setInstruction(instruction.selectedMinion(), instruction.selectedInstruction());
|
||||||
player.playSoundToPlayer(SoundEvents.BLOCK_NOTE_BLOCK_CHIME.value(), SoundCategory.BLOCKS, 1, 1);
|
player.playSoundToPlayer(SoundEvents.BLOCK_NOTE_BLOCK_CHIME.value(), SoundCategory.BLOCKS, 1, 1);
|
||||||
@@ -148,7 +147,7 @@ public class MinionTriggerBlock extends BlockWithEntity implements PolymerBlock,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPolymerBlockState(BlockState state, PacketContext context) {
|
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
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package io.github.skippyall.minions.block.miniontrigger;
|
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.registration.MinionBlocks;
|
||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package io.github.skippyall.minions.block.miniontrigger;
|
|||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import io.github.skippyall.minions.Minions;
|
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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.registration.MinionBlocks;
|
import io.github.skippyall.minions.registration.MinionBlocks;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
|
|||||||
@@ -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<Clipboard> CODEC = MinionRegistries.CLIPBOARD_TYPES.getCodec().dispatch(Clipboard::getCodec, Function.identity());
|
||||||
|
|
||||||
|
MapCodec<? extends Clipboard> getCodec();
|
||||||
|
}
|
||||||
+5
-4
@@ -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 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.registration.MinionItems;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
@@ -12,8 +13,8 @@ import net.minecraft.util.Identifier;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import xyz.nucleoid.packettweaker.PacketContext;
|
import xyz.nucleoid.packettweaker.PacketContext;
|
||||||
|
|
||||||
public class ReferenceItem extends Item implements PolymerItem {
|
public class ClipboardItem extends Item implements PolymerItem {
|
||||||
public ReferenceItem(Settings settings) {
|
public ClipboardItem(Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +37,7 @@ public class ReferenceItem extends Item implements PolymerItem {
|
|||||||
|
|
||||||
public static ItemStack createInstructionReference(MinionFakePlayer minion, String instructionName) {
|
public static ItemStack createInstructionReference(MinionFakePlayer minion, String instructionName) {
|
||||||
ItemStack stack = new ItemStack(MinionItems.REFERENCE_ITEM);
|
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;
|
return stack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+8
-8
@@ -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.Codec;
|
||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
@@ -12,16 +12,16 @@ import net.minecraft.util.Uuids;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public record InstructionReference(UUID selectedMinion, String selectedInstruction, String visualMinionName) implements Reference {
|
public record InstructionClipboard(UUID selectedMinion, String selectedInstruction, String visualMinionName) implements Clipboard {
|
||||||
public static final MapCodec<InstructionReference> CODEC = RecordCodecBuilder.mapCodec(instance ->
|
public static final MapCodec<InstructionClipboard> CODEC = RecordCodecBuilder.mapCodec(instance ->
|
||||||
instance.group(
|
instance.group(
|
||||||
Uuids.CODEC.fieldOf("selectedMinion").forGetter(InstructionReference::selectedMinion),
|
Uuids.CODEC.fieldOf("selectedMinion").forGetter(InstructionClipboard::selectedMinion),
|
||||||
Codec.STRING.fieldOf("selectedInstruction").forGetter(InstructionReference::selectedInstruction),
|
Codec.STRING.fieldOf("selectedInstruction").forGetter(InstructionClipboard::selectedInstruction),
|
||||||
Codec.STRING.fieldOf("visualMinionName").forGetter(InstructionReference::visualMinionName)
|
Codec.STRING.fieldOf("visualMinionName").forGetter(InstructionClipboard::visualMinionName)
|
||||||
).apply(instance, InstructionReference::new));
|
).apply(instance, InstructionClipboard::new));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MapCodec<? extends Reference> getCodec() {
|
public MapCodec<? extends Clipboard> getCodec() {
|
||||||
return CODEC;
|
return CODEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ import io.github.skippyall.minions.minion.MinionRuntime;
|
|||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
import io.github.skippyall.minions.program.instruction.ConfiguredInstruction;
|
import io.github.skippyall.minions.program.instruction.ConfiguredInstruction;
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
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.item.Items;
|
||||||
import net.minecraft.screen.ScreenHandlerType;
|
import net.minecraft.screen.ScreenHandlerType;
|
||||||
import net.minecraft.server.network.ServerPlayerEntity;
|
import net.minecraft.server.network.ServerPlayerEntity;
|
||||||
@@ -61,7 +61,7 @@ public class ConfigureInstructionGui extends InstructionBoundSimpleGui {
|
|||||||
.setName(Text.translatable("minions.gui.instruction.configure.copy"))
|
.setName(Text.translatable("minions.gui.instruction.configure.copy"))
|
||||||
.addLoreLine(Text.translatable("minions.gui.instruction.configure.copy.description"))
|
.addLoreLine(Text.translatable("minions.gui.instruction.configure.copy.description"))
|
||||||
.setCallback(() -> {
|
.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);
|
player.playSoundToPlayer(SoundEvents.BLOCK_NOTE_BLOCK_CHIME.value(), SoundCategory.BLOCKS, 1, 1);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package io.github.skippyall.minions.gui;
|
|||||||
import com.mojang.authlib.properties.PropertyMap;
|
import com.mojang.authlib.properties.PropertyMap;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import io.github.skippyall.minions.registration.MinionRegistries;
|
import io.github.skippyall.minions.registration.MinionRegistries;
|
||||||
import io.github.skippyall.minions.Minions;
|
|
||||||
import io.github.skippyall.minions.util.TranslationUtil;
|
import io.github.skippyall.minions.util.TranslationUtil;
|
||||||
import it.unimi.dsi.fastutil.objects.ReferenceSortedSets;
|
import it.unimi.dsi.fastutil.objects.ReferenceSortedSets;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
@@ -141,11 +140,4 @@ public interface GuiDisplay {
|
|||||||
return CODEC;
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package io.github.skippyall.minions.gui;
|
|||||||
|
|
||||||
import eu.pb4.sgui.api.elements.GuiElementBuilder;
|
import eu.pb4.sgui.api.elements.GuiElementBuilder;
|
||||||
import eu.pb4.sgui.api.gui.SimpleGui;
|
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.registration.MinionRegistries;
|
||||||
import io.github.skippyall.minions.gui.input.Result;
|
import io.github.skippyall.minions.gui.input.Result;
|
||||||
import io.github.skippyall.minions.gui.input.TextInput;
|
import io.github.skippyall.minions.gui.input.TextInput;
|
||||||
@@ -171,7 +172,7 @@ public class InstructionGui {
|
|||||||
|
|
||||||
for (int i = 0; i < minion.getModuleInventory().size(); i++) {
|
for (int i = 0; i < minion.getModuleInventory().size(); i++) {
|
||||||
ItemStack moduleItem = minion.getModuleInventory().getStack(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()) {
|
if (module != null && !module.instructions().isEmpty()) {
|
||||||
gui.addSlot(new GuiElementBuilder(moduleItem)
|
gui.addSlot(new GuiElementBuilder(moduleItem)
|
||||||
.setCallback(() -> selectInstructionMenu(module, minion, player)
|
.setCallback(() -> selectInstructionMenu(module, minion, player)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import io.github.skippyall.minions.minion.MinionData;
|
|||||||
import io.github.skippyall.minions.minion.MinionItem;
|
import io.github.skippyall.minions.minion.MinionItem;
|
||||||
import io.github.skippyall.minions.minion.MinionProfileUtils;
|
import io.github.skippyall.minions.minion.MinionProfileUtils;
|
||||||
import io.github.skippyall.minions.minion.skin.SkinProvider;
|
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.DataComponentTypes;
|
||||||
import net.minecraft.component.type.ProfileComponent;
|
import net.minecraft.component.type.ProfileComponent;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|||||||
+2
-1
@@ -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.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
||||||
import io.github.skippyall.minions.program.consumer.ValueConsumerList;
|
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 io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
||||||
import net.minecraft.storage.ReadView;
|
import net.minecraft.storage.ReadView;
|
||||||
import net.minecraft.storage.WriteView;
|
import net.minecraft.storage.WriteView;
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
//partially code from https://github.com/gnembon/fabric-carpet (EntityPlayerActionPack)
|
//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.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
||||||
+1
-1
@@ -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.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
+1
-1
@@ -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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
||||||
+1
-1
@@ -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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
||||||
+1
-1
@@ -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 com.mojang.serialization.Codec;
|
||||||
import io.github.skippyall.minions.gui.Displayable;
|
import io.github.skippyall.minions.gui.Displayable;
|
||||||
+2
-2
@@ -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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
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 class TurnExecution extends AbstractTurnExecution {
|
||||||
public static final Parameter<Double> ANGLE = new Parameter<>("maxAngle", ValueTypes.DOUBLE);
|
public static final Parameter<Double> ANGLE = new Parameter<>("maxAngle", ValueTypes.DOUBLE);
|
||||||
+2
-2
@@ -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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
import io.github.skippyall.minions.program.supplier.Parameter;
|
||||||
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
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.MathHelper;
|
||||||
import net.minecraft.util.math.Vec2f;
|
import net.minecraft.util.math.Vec2f;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
+2
-2
@@ -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.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
import io.github.skippyall.minions.program.instruction.InstructionExecution;
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
import io.github.skippyall.minions.program.supplier.Parameter;
|
||||||
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
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.entity.MovementType;
|
||||||
import net.minecraft.storage.ReadView;
|
import net.minecraft.storage.ReadView;
|
||||||
import net.minecraft.storage.WriteView;
|
import net.minecraft.storage.WriteView;
|
||||||
+1
-1
@@ -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.minion.fakeplayer.MinionFakePlayer;
|
||||||
import io.github.skippyall.minions.program.instruction.ConfiguredInstructionListener;
|
import io.github.skippyall.minions.program.instruction.ConfiguredInstructionListener;
|
||||||
+1
-1
@@ -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.datafixers.util.Function3;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.github.skippyall.minions.util;
|
package io.github.skippyall.minions.listener;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.github.skippyall.minions.util;
|
package io.github.skippyall.minions.listener;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
@@ -3,15 +3,9 @@ package io.github.skippyall.minions.minion;
|
|||||||
import com.mojang.authlib.properties.PropertyMap;
|
import com.mojang.authlib.properties.PropertyMap;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
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.registration.MinionRegistries;
|
||||||
import io.github.skippyall.minions.Minions;
|
import io.github.skippyall.minions.listener.SerializableListenerManager;
|
||||||
import io.github.skippyall.minions.util.SerializableListenerManager;
|
|
||||||
import net.minecraft.component.ComponentType;
|
|
||||||
import net.minecraft.registry.Registries;
|
|
||||||
import net.minecraft.registry.Registry;
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
import net.minecraft.util.Uuids;
|
import net.minecraft.util.Uuids;
|
||||||
import net.minecraft.util.dynamic.Codecs;
|
import net.minecraft.util.dynamic.Codecs;
|
||||||
|
|
||||||
@@ -32,8 +26,6 @@ public record MinionData(UUID uuid, String name, Optional<PropertyMap> skin, boo
|
|||||||
).apply(instance, MinionData::new)
|
).apply(instance, MinionData::new)
|
||||||
);
|
);
|
||||||
|
|
||||||
public static final ComponentType<UUID> COMPONENT = Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(Minions.MOD_ID, "minion_data"), ComponentType.<UUID>builder().codec(Uuids.CODEC).build());
|
|
||||||
|
|
||||||
public static MinionData createDefault(MinecraftServer server) {
|
public static MinionData createDefault(MinecraftServer server) {
|
||||||
return new MinionData(UUID.randomUUID(), MinionProfileUtils.newDefaultMinionName(server), Optional.empty(), false, new SerializableListenerManager<>(MinionRegistries.MINION_LISTENER_CODECS));
|
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<PropertyMap> skin, boo
|
|||||||
public MinionData withSpawned(boolean isSpawned) {
|
public MinionData withSpawned(boolean isSpawned) {
|
||||||
return new MinionData(uuid, name, skin, isSpawned, listeners);
|
return new MinionData(uuid, name, skin, isSpawned, listeners);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
|
||||||
PolymerComponent.registerDataComponent(COMPONENT);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import eu.pb4.polymer.core.api.item.PolymerItem;
|
|||||||
import eu.pb4.polymer.core.api.item.PolymerItemUtils;
|
import eu.pb4.polymer.core.api.item.PolymerItemUtils;
|
||||||
import io.github.skippyall.minions.gui.MinionLookGui;
|
import io.github.skippyall.minions.gui.MinionLookGui;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
|
import io.github.skippyall.minions.registration.MinionComponentTypes;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.TooltipDisplayComponent;
|
import net.minecraft.component.type.TooltipDisplayComponent;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
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) {
|
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);
|
MinionPersistentState.get(server).updateMinionData(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static MinionData getData(MinecraftServer server, ItemStack item) {
|
public static MinionData getData(MinecraftServer server, ItemStack item) {
|
||||||
if(item.contains(MinionData.COMPONENT)) {
|
if(item.contains(MinionComponentTypes.MINION_DATA)) {
|
||||||
return MinionPersistentState.get(server).getMinionData(item.get(MinionData.COMPONENT));
|
return MinionPersistentState.get(server).getMinionData(item.get(MinionComponentTypes.MINION_DATA));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -100,6 +101,6 @@ public class MinionItem extends Item implements PolymerItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean containsData(ItemStack item) {
|
public static boolean containsData(ItemStack item) {
|
||||||
return item.contains(MinionData.COMPONENT);
|
return item.contains(MinionComponentTypes.MINION_DATA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package io.github.skippyall.minions.minion;
|
|||||||
|
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
import io.github.skippyall.minions.program.instruction.ConfiguredInstruction;
|
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;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public interface MinionListener extends SerializableListenerManager.SerializableListener {
|
public interface MinionListener extends SerializableListenerManager.SerializableListener {
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import io.github.skippyall.minions.minion.MinionItem;
|
|||||||
import io.github.skippyall.minions.minion.MinionPersistentState;
|
import io.github.skippyall.minions.minion.MinionPersistentState;
|
||||||
import io.github.skippyall.minions.minion.MinionProfileUtils;
|
import io.github.skippyall.minions.minion.MinionProfileUtils;
|
||||||
import io.github.skippyall.minions.module.ModuleInventory;
|
import io.github.skippyall.minions.module.ModuleInventory;
|
||||||
import io.github.skippyall.minions.module.SpecialAbilities;
|
import io.github.skippyall.minions.registration.SpecialAbilities;
|
||||||
import io.github.skippyall.minions.util.SerializableListenerManager;
|
import io.github.skippyall.minions.listener.SerializableListenerManager;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
|||||||
@@ -2,15 +2,9 @@ package io.github.skippyall.minions.module;
|
|||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
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.registration.MinionRegistries;
|
||||||
import io.github.skippyall.minions.Minions;
|
|
||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionType;
|
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;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -22,8 +16,6 @@ public record MinionModule(List<InstructionType<MinionRuntime>> instructions, Li
|
|||||||
).apply(instance, MinionModule::new)
|
).apply(instance, MinionModule::new)
|
||||||
);
|
);
|
||||||
|
|
||||||
public static final ComponentType<MinionModule> COMPONENT_TYPE = ComponentType.<MinionModule>builder().codec(CODEC).build();
|
|
||||||
|
|
||||||
public static final MinionModule EMPTY = new MinionModule(List.of());
|
public static final MinionModule EMPTY = new MinionModule(List.of());
|
||||||
|
|
||||||
public MinionModule(List<InstructionType<MinionRuntime>> instructions) {
|
public MinionModule(List<InstructionType<MinionRuntime>> instructions) {
|
||||||
@@ -34,9 +26,4 @@ public record MinionModule(List<InstructionType<MinionRuntime>> instructions, Li
|
|||||||
this.instructions = List.copyOf(instructions);
|
this.instructions = List.copyOf(instructions);
|
||||||
this.specialAbilities = List.copyOf(specialAbilities);
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package io.github.skippyall.minions.module;
|
|||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionType;
|
import io.github.skippyall.minions.program.instruction.InstructionType;
|
||||||
|
import io.github.skippyall.minions.registration.MinionComponentTypes;
|
||||||
import net.minecraft.inventory.Inventories;
|
import net.minecraft.inventory.Inventories;
|
||||||
import net.minecraft.inventory.SimpleInventory;
|
import net.minecraft.inventory.SimpleInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -41,7 +42,7 @@ public class ModuleInventory extends SimpleInventory {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isValid(int slot, ItemStack stack) {
|
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
|
@Override
|
||||||
@@ -59,7 +60,7 @@ public class ModuleInventory extends SimpleInventory {
|
|||||||
instructions.clear();
|
instructions.clear();
|
||||||
specialAbilities.clear();
|
specialAbilities.clear();
|
||||||
for (ItemStack heldStack : heldStacks) {
|
for (ItemStack heldStack : heldStacks) {
|
||||||
MinionModule module = heldStack.get(MinionModule.COMPONENT_TYPE);
|
MinionModule module = heldStack.get(MinionComponentTypes.MODULE);
|
||||||
if(module != null) {
|
if(module != null) {
|
||||||
modules.add(module);
|
modules.add(module);
|
||||||
instructions.addAll(module.instructions());
|
instructions.addAll(module.instructions());
|
||||||
|
|||||||
@@ -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());
|
|
||||||
}
|
|
||||||
+1
-1
@@ -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.Parameter;
|
||||||
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
import io.github.skippyall.minions.program.supplier.ValueSupplierList;
|
||||||
import io.github.skippyall.minions.program.consumer.ValueConsumerList;
|
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.ReadView;
|
||||||
import net.minecraft.storage.WriteView;
|
import net.minecraft.storage.WriteView;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package io.github.skippyall.minions.program.instruction;
|
package io.github.skippyall.minions.program.instruction;
|
||||||
|
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
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 {
|
public interface ConfiguredInstructionListener extends SerializableListenerManager.SerializableListener {
|
||||||
default void onRun(ConfiguredInstruction<?> instruction) {}
|
default void onRun(ConfiguredInstruction<?> instruction) {}
|
||||||
|
|||||||
@@ -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<Reference> CODEC = MinionRegistries.REFERENCE_CODEC.getCodec().dispatch(Reference::getCodec, Function.identity());
|
|
||||||
ComponentType<Reference> COMPONENT_TYPE = ComponentType.<Reference>builder().codec(CODEC).build();
|
|
||||||
|
|
||||||
MapCodec<? extends Reference> 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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<? extends Clipboard> codec) {
|
||||||
|
Registry.register(MinionRegistries.CLIPBOARD_TYPES, Identifier.of(Minions.MOD_ID, id), codec);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void register() {
|
||||||
|
register("instruction", InstructionClipboard.CODEC);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
+9
-8
@@ -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.Minions;
|
||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.ActionExecution;
|
import io.github.skippyall.minions.instruction.ActionExecution;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.MineBlockExecution;
|
import io.github.skippyall.minions.instruction.MineBlockExecution;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.move.ContinuousWalkExecution;
|
import io.github.skippyall.minions.instruction.move.ContinuousWalkExecution;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.move.TurnExecution;
|
import io.github.skippyall.minions.instruction.move.TurnExecution;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.move.TurnVectorExecution;
|
import io.github.skippyall.minions.instruction.move.TurnVectorExecution;
|
||||||
import io.github.skippyall.minions.program.instruction.execution.move.WalkExecution;
|
import io.github.skippyall.minions.instruction.move.WalkExecution;
|
||||||
import io.github.skippyall.minions.program.supplier.Parameter;
|
import io.github.skippyall.minions.program.supplier.Parameter;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
@@ -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<UUID> MINION_DATA = register("minion_data", ComponentType.<UUID>builder().codec(Uuids.CODEC).build());
|
||||||
|
public static final ComponentType<MinionModule> MODULE = register("minion_module", ComponentType.<MinionModule>builder().codec(MinionModule.CODEC).build());
|
||||||
|
public static final ComponentType<Clipboard> REFERENCE = ComponentType.<Clipboard>builder().codec(Clipboard.CODEC).build();
|
||||||
|
|
||||||
|
private static <T extends ComponentType<?>> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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.MinionItem;
|
||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import io.github.skippyall.minions.module.MinionModule;
|
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.module.SpecialAbility;
|
||||||
import io.github.skippyall.minions.program.instruction.InstructionType;
|
import io.github.skippyall.minions.program.instruction.InstructionType;
|
||||||
import io.github.skippyall.minions.program.instruction.Instructions;
|
import io.github.skippyall.minions.clipboard.ClipboardItem;
|
||||||
import io.github.skippyall.minions.reference.ReferenceItem;
|
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.DamageResistantComponent;
|
import net.minecraft.component.type.DamageResistantComponent;
|
||||||
import net.minecraft.entity.damage.DamageType;
|
import net.minecraft.entity.damage.DamageType;
|
||||||
@@ -78,7 +76,7 @@ public class MinionItems {
|
|||||||
new Item.Settings().useBlockPrefixedTranslationKey()
|
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 extends Item> T registerItem(Identifier identifier, Function<Item.Settings, T> constructor, Item.Settings settings) {
|
public static <T extends Item> T registerItem(Identifier identifier, Function<Item.Settings, T> constructor, Item.Settings settings) {
|
||||||
T item = constructor.apply(settings.registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)));
|
T item = constructor.apply(settings.registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)));
|
||||||
@@ -96,7 +94,7 @@ public class MinionItems {
|
|||||||
return registerItem(
|
return registerItem(
|
||||||
identifier,
|
identifier,
|
||||||
settings -> new SimplePolymerItem(settings, vanillaItem),
|
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))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,21 @@
|
|||||||
package io.github.skippyall.minions.registration;
|
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 class MinionRegistration {
|
||||||
|
|
||||||
public static void register() {
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.instruction.InstructionType;
|
||||||
import io.github.skippyall.minions.program.consumer.ValueConsumerType;
|
import io.github.skippyall.minions.program.consumer.ValueConsumerType;
|
||||||
import io.github.skippyall.minions.program.value.ValueType;
|
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.DynamicRegistries;
|
||||||
import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
||||||
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
||||||
@@ -31,7 +31,7 @@ public class MinionRegistries {
|
|||||||
public static final Registry<Codec<? extends GuiDisplay>> GUI_DISPLAY_TYPE = registry("gui_display_type");
|
public static final Registry<Codec<? extends GuiDisplay>> GUI_DISPLAY_TYPE = registry("gui_display_type");
|
||||||
public static final Registry<Codec<? extends ConfiguredInstructionListener>> INSTRUCTION_LISTENER_CODECS = registry("instruction_listener_codec");
|
public static final Registry<Codec<? extends ConfiguredInstructionListener>> INSTRUCTION_LISTENER_CODECS = registry("instruction_listener_codec");
|
||||||
public static final Registry<Codec<? extends MinionListener>> MINION_LISTENER_CODECS = registry("minion_listener_codec");
|
public static final Registry<Codec<? extends MinionListener>> MINION_LISTENER_CODECS = registry("minion_listener_codec");
|
||||||
public static final Registry<MapCodec<? extends Reference>> REFERENCE_CODEC = registry("reference_codec");
|
public static final Registry<MapCodec<? extends Clipboard>> CLIPBOARD_TYPES = registry("clipboard_type");
|
||||||
public static final Registry<SpecialAbility> SPECIAL_ABILITIES = registry("special_ability");
|
public static final Registry<SpecialAbility> SPECIAL_ABILITIES = registry("special_ability");
|
||||||
|
|
||||||
public static final RegistryKey<Registry<GuiDisplay>> GUI_DISPLAY = key("gui_display");
|
public static final RegistryKey<Registry<GuiDisplay>> GUI_DISPLAY = key("gui_display");
|
||||||
|
|||||||
+5
-2
@@ -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 io.github.skippyall.minions.Minions;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
@@ -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 extends SpecialAbility> T register(String name, T type) {
|
||||||
|
Registry.register(MinionRegistries.SPECIAL_ABILITIES, Identifier.of(Minions.MOD_ID, name), type);
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void register() {}
|
||||||
|
}
|
||||||
+3
-2
@@ -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.Minions;
|
||||||
import io.github.skippyall.minions.minion.MinionRuntime;
|
import io.github.skippyall.minions.minion.MinionRuntime;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
package io.github.skippyall.minions.program.value;
|
package io.github.skippyall.minions.registration;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
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.Minions;
|
||||||
import io.github.skippyall.minions.gui.input.ChoiceInput;
|
import io.github.skippyall.minions.gui.input.ChoiceInput;
|
||||||
import io.github.skippyall.minions.gui.input.TextInput;
|
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.registry.Registry;
|
||||||
import net.minecraft.server.network.ServerPlayerEntity;
|
import net.minecraft.server.network.ServerPlayerEntity;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
Reference in New Issue
Block a user