This commit is contained in:
skippyall
2025-06-11 11:28:43 +02:00
parent 66cbad38cb
commit e42e3adf84
31 changed files with 377 additions and 110 deletions
@@ -1,8 +1,9 @@
package io.github.skippyall.minions.module;
import io.github.skippyall.minions.Minions;
import io.github.skippyall.minions.module.command.SimpleCommand;
import io.github.skippyall.minions.module.action.ActionModules;
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
import io.github.skippyall.minions.module.instruction.InstructionDisplay;
import net.minecraft.item.Items;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
@@ -12,7 +13,7 @@ import java.util.List;
import static io.github.skippyall.minions.module.Modules.register;
public class AttackModule {
public static final SimpleCommand ATTACK_COMMAND = new SimpleCommand(
public static final InstructionDisplay ATTACK_COMMAND = new InstructionDisplay(
Text.translatable("minions.command.attack.name"),
Text.translatable("minions.command.attack.description"),
Items.DIAMOND_PICKAXE,
@@ -1,6 +1,7 @@
package io.github.skippyall.minions.module;
import io.github.skippyall.minions.Minions;
import io.github.skippyall.minions.module.action.ActionModules;
import io.github.skippyall.minions.module.command.SimpleCommand;
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
import net.minecraft.item.Items;
@@ -1,13 +1,10 @@
package io.github.skippyall.minions.module;
import io.github.skippyall.minions.module.command.Command;
import io.github.skippyall.minions.program.block.CodeBlock;
import io.github.skippyall.minions.module.instruction.InstructionDisplay;
import net.minecraft.item.ItemConvertible;
import java.util.List;
public interface ModuleItem extends ItemConvertible {
List<CodeBlock<?,?>> getCodeBlocks();
List<Command> getCommands();
List<InstructionDisplay> getInstructions();
}
@@ -2,6 +2,8 @@ package io.github.skippyall.minions.module;
import io.github.skippyall.minions.MinionItems;
import io.github.skippyall.minions.module.command.Command;
import io.github.skippyall.minions.module.instruction.InstructionDisplay;
import io.github.skippyall.minions.new_program.instruction.Instruction;
import io.github.skippyall.minions.program.block.CodeBlock;
import net.minecraft.item.Item;
import net.minecraft.registry.Registries;
@@ -22,7 +24,7 @@ public class Modules {
AttackModule.registerMe();
}
public static SimpleModuleItem register(Identifier id, List<CodeBlock<?,?>> codeBlocks, List<Command> commands, Item vanillaItem) {
return MinionItems.registerItem(id, settings -> new SimpleModuleItem(codeBlocks, commands, settings, vanillaItem));
public static SimpleModuleItem register(Identifier id, List<InstructionDisplay> instructions, Item vanillaItem) {
return MinionItems.registerItem(id, settings -> new SimpleModuleItem(instructions, settings, vanillaItem));
}
}
@@ -2,28 +2,23 @@ package io.github.skippyall.minions.module;
import eu.pb4.polymer.core.api.item.SimplePolymerItem;
import io.github.skippyall.minions.module.command.Command;
import io.github.skippyall.minions.module.instruction.InstructionDisplay;
import io.github.skippyall.minions.new_program.instruction.Instruction;
import io.github.skippyall.minions.program.block.CodeBlock;
import net.minecraft.item.Item;
import java.util.List;
public class SimpleModuleItem extends SimplePolymerItem implements ModuleItem {
private final List<CodeBlock<?,?>> codeBlocks;
private final List<Command> commands;
private final List<InstructionDisplay> instructions;
public SimpleModuleItem(List<CodeBlock<?,?>> codeBlocks, List<Command> commands, Settings settings, Item vanillaItem) {
public SimpleModuleItem(List<InstructionDisplay> instructions, Settings settings, Item vanillaItem) {
super(settings.maxCount(1), vanillaItem);
this.codeBlocks = codeBlocks;
this.commands = commands;
this.instructions = instructions;
}
@Override
public List<CodeBlock<?, ?>> getCodeBlocks() {
return codeBlocks;
}
@Override
public List<Command> getCommands() {
return commands;
public List<InstructionDisplay> getInstructions() {
return instructions;
}
}
@@ -1,16 +1,18 @@
package io.github.skippyall.minions.module;
package io.github.skippyall.minions.module.action;
import eu.pb4.sgui.api.elements.GuiElementBuilder;
import eu.pb4.sgui.api.gui.SimpleGui;
import io.github.skippyall.minions.module.command.CommandExecutor;
import io.github.skippyall.minions.input.TextInput;
import io.github.skippyall.minions.minion.fakeplayer.EntityPlayerActionPack;
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
import io.github.skippyall.minions.new_program.instruction.Instruction;
import net.minecraft.item.Items;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
import java.util.List;
public class ActionModules {
public static void executeOnce(EntityPlayerActionPack.ActionType actionType, ServerPlayerEntity player, MinionFakePlayer minion) {
minion.getMinionActionPack().start(actionType, EntityPlayerActionPack.Action.once());
@@ -31,7 +33,11 @@ public class ActionModules {
minion.getMinionActionPack().stop(actionType);
}
public static CommandExecutor detailSelectionExecutor(EntityPlayerActionPack.ActionType actionType, Text actionName) {
public static List<Instruction> actionInstruction(EntityPlayerActionPack.ActionType actionType, Text actionName) {
return List.of(
)
return (player, minion) -> {
SimpleGui gui = new SimpleGui(ScreenHandlerType.GENERIC_3X3, player, false);
gui.setTitle(Text.translatable("minions.command.action.details", actionName));
@@ -0,0 +1,9 @@
package io.github.skippyall.minions.module.instruction;
import io.github.skippyall.minions.new_program.instruction.Instruction;
import net.minecraft.item.Item;
import net.minecraft.text.Text;
public record InstructionDisplay(Text name, Text description, Item itemRepresentation, Instruction instruction) {
}