Added a GUI via an item you can get it via /seed gui
This commit is contained in:
@@ -2,18 +2,25 @@ package kaptainwutax.seedcracker;
|
||||
|
||||
import kaptainwutax.seedcracker.cracker.storage.DataStorage;
|
||||
import kaptainwutax.seedcracker.finder.FinderQueue;
|
||||
import kaptainwutax.seedcracker.gui.GuiItem;
|
||||
import kaptainwutax.seedcracker.render.RenderQueue;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.Rarity;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
|
||||
public class SeedCracker implements ModInitializer {
|
||||
|
||||
private static final SeedCracker INSTANCE = new SeedCracker();
|
||||
private DataStorage dataStorage = new DataStorage();
|
||||
|
||||
public static Item GUI_ITEM=new GuiItem(new Item.Settings().group(ItemGroup.MISC).rarity(Rarity.EPIC));
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
RenderQueue.get().add("hand", FinderQueue.get()::renderFinders);
|
||||
|
||||
Registry.register(Registry.ITEM,new Identifier("seedcracker","gui_item"),GUI_ITEM);
|
||||
/*
|
||||
long ss = 5718603440394L;
|
||||
LCG lcg = Rand.JAVA_LCG.combine(-5);
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package kaptainwutax.seedcracker.command;
|
||||
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
|
||||
import kaptainwutax.seedcracker.finder.Finder;
|
||||
import kaptainwutax.seedcracker.finder.FinderQueue;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.Formatting;
|
||||
|
||||
import static kaptainwutax.seedcracker.SeedCracker.GUI_ITEM;
|
||||
import static net.minecraft.server.command.CommandManager.literal;
|
||||
|
||||
public class GuiCommand extends ClientCommand {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "gui";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build(LiteralArgumentBuilder<ServerCommandSource> builder) {
|
||||
builder.executes(ctx->
|
||||
{
|
||||
ServerCommandSource source = ctx.getSource();
|
||||
|
||||
ClientPlayerEntity self =(ClientPlayerEntity) source.getEntity();
|
||||
assert self != null;
|
||||
if(!self.inventory.insertStack(new ItemStack(GUI_ITEM))){
|
||||
throw new SimpleCommandExceptionType(new TranslatableText("inventory.isfull")).create();
|
||||
}
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package kaptainwutax.seedcracker.gui;
|
||||
|
||||
import io.github.cottonmc.cotton.gui.client.BackgroundPainter;
|
||||
import io.github.cottonmc.cotton.gui.client.LightweightGuiDescription;
|
||||
import io.github.cottonmc.cotton.gui.widget.WButton;
|
||||
import io.github.cottonmc.cotton.gui.widget.WGridPanel;
|
||||
import io.github.cottonmc.cotton.gui.widget.WLabel;
|
||||
import io.github.cottonmc.cotton.gui.widget.WSprite;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class Gui extends LightweightGuiDescription {
|
||||
public Gui() {
|
||||
WGridPanel root = new WGridPanel();
|
||||
setRootPanel(root);
|
||||
root.setSize(256, 240);
|
||||
|
||||
WSprite icon = new WSprite(new Identifier("minecraft:textures/item/redstone.png"));
|
||||
root.add(icon, 0, 2, 1, 1);
|
||||
|
||||
WButton button = new WButton(new TranslatableText("gui.examplemod.examplebutton"));
|
||||
root.add(button, 0, 3, 4, 1);
|
||||
|
||||
WLabel label = new WLabel(new LiteralText("Test"), 0xFFFFFF);
|
||||
root.add(label, 0, 4, 2, 1);
|
||||
|
||||
root.validate(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void addPainters() {
|
||||
getRootPanel().setBackgroundPainter(BackgroundPainter.VANILLA); //This is done automatically though
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package kaptainwutax.seedcracker.gui;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.TypedActionResult;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class GuiItem extends Item {
|
||||
|
||||
public GuiItem(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
|
||||
MinecraftClient.getInstance().openScreen(new Screen(new Gui()));
|
||||
return super.use(world, user, hand);
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package kaptainwutax.seedcracker.gui;
|
||||
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.text.LiteralText;
|
||||
|
||||
public class GuiScreen extends Screen {
|
||||
|
||||
public GuiScreen(String name) {
|
||||
super(new LiteralText(name));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||
this.renderBackground();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPauseScreen() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package kaptainwutax.seedcracker.gui;
|
||||
|
||||
import io.github.cottonmc.cotton.gui.GuiDescription;
|
||||
import io.github.cottonmc.cotton.gui.client.CottonClientScreen;
|
||||
|
||||
public class Screen extends CottonClientScreen {
|
||||
public Screen(GuiDescription description) {
|
||||
super(description);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.mojang.brigadier.StringReader;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import kaptainwutax.seedcracker.command.ClientCommand;
|
||||
import kaptainwutax.seedcracker.command.FinderCommand;
|
||||
import kaptainwutax.seedcracker.command.GuiCommand;
|
||||
import kaptainwutax.seedcracker.command.RenderCommand;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
@@ -23,10 +24,12 @@ public class ClientCommands {
|
||||
|
||||
public static RenderCommand RENDER;
|
||||
public static FinderCommand FINDER;
|
||||
public static GuiCommand GUI;
|
||||
|
||||
static {
|
||||
COMMANDS.add(RENDER = new RenderCommand());
|
||||
COMMANDS.add(FINDER = new FinderCommand());
|
||||
COMMANDS.add(GUI = new GuiCommand());
|
||||
}
|
||||
|
||||
public static void registerCommands(CommandDispatcher<ServerCommandSource> dispatcher) {
|
||||
|
||||
@@ -2,10 +2,7 @@ package kaptainwutax.seedcracker.mixin;
|
||||
|
||||
import com.mojang.brigadier.StringReader;
|
||||
import kaptainwutax.seedcracker.SeedCracker;
|
||||
import kaptainwutax.seedcracker.gui.GuiScreen;
|
||||
import kaptainwutax.seedcracker.init.ClientCommands;
|
||||
import kaptainwutax.seedcracker.init.KeyBindings;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@@ -20,10 +17,6 @@ public abstract class ClientPlayerEntityMixin {
|
||||
@Inject(method = "tick", at = @At("HEAD"))
|
||||
private void tick(CallbackInfo ci) {
|
||||
SeedCracker.get().getDataStorage().tick();
|
||||
|
||||
if(MinecraftClient.getInstance().currentScreen == null && KeyBindings.OPEN_MENU.isPressed()) {
|
||||
MinecraftClient.getInstance().openScreen(new GuiScreen("Test"));
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
|
||||
|
||||
Reference in New Issue
Block a user