Search in sources :

Example 6 with SimpleGui

use of eu.pb4.sgui.api.gui.SimpleGui in project ArmorStandEditor by Patbox.

the class EditorGuis method setIcons.

private static void setIcons(ServerPlayerEntity player, SimpleGui gui) {
    createIcon(player, gui, 0, Items.RED_WOOL, "x", 0);
    createIcon(player, gui, 1, Items.GREEN_WOOL, "y", 1);
    createIcon(player, gui, 2, Items.BLUE_WOOL, "z", 2);
    createIconCustomPower(player, gui, 5, Items.GOLD_INGOT);
    createIcon(player, gui, 6, Items.IRON_NUGGET, "small", 0.01f);
    createIcon(player, gui, 7, Items.IRON_INGOT, "medium", 0.1f);
    createIcon(player, gui, 8, Items.IRON_BLOCK, "big", 1f);
    createIcon(player, gui, 9, Items.MINECART, "move", EditorActions.MOVE);
    createIcon(player, gui, 10, Items.COMPASS, "rotate", EditorActions.ROTATE);
    createIcon(player, gui, 24, Items.PUFFERFISH, "size", EditorActions.TOGGLE_SIZE);
    createIcon(player, gui, 25, Items.APPLE, "gravity", EditorActions.TOGGLE_GRAVITY);
    createIcon(player, gui, 26, Items.GLASS, "visibility", EditorActions.TOGGLE_VISIBILITY);
    createIcon(player, gui, 34, Items.STICK, "arms", EditorActions.TOGGLE_ARMS);
    createIcon(player, gui, 35, Items.STONE_SLAB, "base", EditorActions.TOGGLE_BASE);
    createIcon(player, gui, 19, Items.LEATHER_HELMET, "head", EditorActions.MODIFY_HEAD);
    createIcon(player, gui, 27, Items.STICK, "left_arm", EditorActions.MODIFY_LEFT_ARM);
    createIcon(player, gui, 28, Items.LEATHER_CHESTPLATE, "body", EditorActions.MODIFY_BODY);
    createIcon(player, gui, 29, Items.STICK, "right_arm", EditorActions.MODIFY_RIGHT_ARM);
    createIcon(player, gui, 21, Items.GLISTERING_MELON_SLICE, "flip_pose", EditorActions.FLIP_POSE);
    createIcon(player, gui, 30, Items.LEVER, "reset_pose", EditorActions.RESET_POSE);
    createIcon(player, gui, 36, Items.LEATHER_BOOTS, "left_leg", EditorActions.MODIFY_LEFT_LEG);
    createIcon(player, gui, 37, Items.CHEST, "inventory", EditorActions.INVENTORY);
    createIcon(player, gui, 38, Items.LEATHER_BOOTS, "right_leg", EditorActions.MODIFY_RIGHT_LEG);
    createIcon(player, gui, 39, Items.NAME_TAG, "rename", EditorActions.RENAME);
    createIcon(player, gui, 43, Items.SLIME_BALL, "copy", EditorActions.COPY);
    createIcon(player, gui, 44, Items.MAGMA_CREAM, "paste", EditorActions.PASTE);
    gui.setSlot(42, new GuiElementBuilder(Items.MOJANG_BANNER_PATTERN).setName(new TranslatableText("armorstandeditor.gui.name.presets").setStyle(Style.EMPTY.withItalic(false))).setCallback((x, y, z) -> openPresetSelector(player)));
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) LiteralText(net.minecraft.text.LiteralText) ConfigManager(eu.pb4.armorstandeditor.config.ConfigManager) Item(net.minecraft.item.Item) StringTag(net.minecraft.nbt.StringTag) Permissions(me.lucko.fabric.api.permissions.v0.Permissions) TranslatableText(net.minecraft.text.TranslatableText) ItemFrameEntity(net.minecraft.entity.decoration.ItemFrameEntity) Slot(net.minecraft.screen.slot.Slot) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) Style(net.minecraft.text.Style) GuiElementInterface(eu.pb4.sgui.api.elements.GuiElementInterface) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AnvilInputGui(eu.pb4.sgui.api.gui.AnvilInputGui) ItemFrameEntityAccessor(eu.pb4.armorstandeditor.mixin.ItemFrameEntityAccessor) Enchantments(net.minecraft.enchantment.Enchantments) EquipmentSlot(net.minecraft.entity.EquipmentSlot) GuiElementBuilder(eu.pb4.sgui.api.elements.GuiElementBuilder) ClickType(eu.pb4.sgui.api.ClickType) ScreenHandlerType(net.minecraft.screen.ScreenHandlerType) Entity(net.minecraft.entity.Entity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) ArmorStandEntityAccessor(eu.pb4.armorstandeditor.mixin.ArmorStandEntityAccessor) LivingEntity(net.minecraft.entity.LivingEntity) ArmorStandEntity(net.minecraft.entity.decoration.ArmorStandEntity) Collection(java.util.Collection) ItemFrameInventory(eu.pb4.armorstandeditor.helpers.ItemFrameInventory) GuiElement(eu.pb4.sgui.api.elements.GuiElement) Items(net.minecraft.item.Items) ArmorStandData(eu.pb4.armorstandeditor.helpers.ArmorStandData) Collectors(java.util.stream.Collectors) SPEInterface(eu.pb4.armorstandeditor.helpers.SPEInterface) Formatting(net.minecraft.util.Formatting) List(java.util.List) ServerPlayerEntity(net.minecraft.server.network.ServerPlayerEntity) ArmorStandInventory(eu.pb4.armorstandeditor.helpers.ArmorStandInventory) ArmorStandPreset(eu.pb4.armorstandeditor.config.ArmorStandPreset) Text(net.minecraft.text.Text) SlotActionType(net.minecraft.screen.slot.SlotActionType) ListTag(net.minecraft.nbt.ListTag) SimpleGui(eu.pb4.sgui.api.gui.SimpleGui) GuiElementBuilder(eu.pb4.sgui.api.elements.GuiElementBuilder)

Example 7 with SimpleGui

use of eu.pb4.sgui.api.gui.SimpleGui in project ArmorStandEditor by Patbox.

the class EditorGuis method createIcon.

private static void createIcon(ServerPlayerEntity player, SimpleGui gui, int index, Item item, String text, int xyz) {
    ItemStack itemStack = item.getDefaultStack();
    itemStack.setCustomName(new TranslatableText("armorstandeditor.gui.name." + text).setStyle(Style.EMPTY.withItalic(false)));
    itemStack.addHideFlag(ItemStack.TooltipSection.ENCHANTMENTS);
    itemStack.addHideFlag(ItemStack.TooltipSection.MODIFIERS);
    if (((SPEInterface) player).getArmorStandEditorXYZ() == xyz) {
        itemStack.addEnchantment(Enchantments.POWER, 1);
    }
    gui.setSlot(index, itemStack, (index2, type, actionType) -> {
        ((SPEInterface) player).setArmorStandEditorXYZ(xyz);
    });
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) SPEInterface(eu.pb4.armorstandeditor.helpers.SPEInterface) ItemStack(net.minecraft.item.ItemStack)

Example 8 with SimpleGui

use of eu.pb4.sgui.api.gui.SimpleGui in project ArmorStandEditor by Patbox.

the class EditorGuis method openGui.

public static void openGui(ServerPlayerEntity player) {
    SimpleGui gui = new SimpleGui(ScreenHandlerType.GENERIC_9X5, player, false) {

        @Override
        public boolean onClick(int index, ClickType type, SlotActionType action, GuiElementInterface element) {
            setIcons(player, this);
            return super.onClick(index, type, action, element);
        }
    };
    gui.setTitle(new TranslatableText("armorstandeditor.gui.editor_title"));
    setIcons(player, gui);
    gui.open();
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) ClickType(eu.pb4.sgui.api.ClickType) SlotActionType(net.minecraft.screen.slot.SlotActionType) GuiElementInterface(eu.pb4.sgui.api.elements.GuiElementInterface) SimpleGui(eu.pb4.sgui.api.gui.SimpleGui)

Example 9 with SimpleGui

use of eu.pb4.sgui.api.gui.SimpleGui in project ArmorStandEditor by Patbox.

the class EditorGuis method createIcon.

private static void createIcon(ServerPlayerEntity player, SimpleGui gui, int index, Item item, String text, float power) {
    ItemStack itemStack = item.getDefaultStack();
    itemStack.setCustomName(new TranslatableText("armorstandeditor.gui.name." + text).setStyle(Style.EMPTY.withItalic(false)));
    ListTag lore = new ListTag();
    lore.add(StringTag.of(Text.Serializer.toJson(new TranslatableText("armorstandeditor.gui.blocksdeg", (Math.round(power * 100) / 100f), Math.floor(power * 3000) / 100).setStyle(Style.EMPTY.withItalic(false).withColor(Formatting.GRAY)))));
    itemStack.getOrCreateTag().getCompound("display").put("Lore", lore);
    itemStack.addHideFlag(ItemStack.TooltipSection.ENCHANTMENTS);
    itemStack.addHideFlag(ItemStack.TooltipSection.MODIFIERS);
    if (((SPEInterface) player).getArmorStandEditorPower() == power) {
        itemStack.addEnchantment(Enchantments.POWER, 1);
    }
    gui.setSlot(index, itemStack, (index2, type, actionType) -> {
        ((SPEInterface) player).setArmorStandEditorPower(power);
    });
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) SPEInterface(eu.pb4.armorstandeditor.helpers.SPEInterface) ItemStack(net.minecraft.item.ItemStack) ListTag(net.minecraft.nbt.ListTag)

Aggregations

TranslatableText (net.minecraft.text.TranslatableText)9 SPEInterface (eu.pb4.armorstandeditor.helpers.SPEInterface)8 ItemStack (net.minecraft.item.ItemStack)8 ListTag (net.minecraft.nbt.ListTag)6 ClickType (eu.pb4.sgui.api.ClickType)5 GuiElementInterface (eu.pb4.sgui.api.elements.GuiElementInterface)5 SimpleGui (eu.pb4.sgui.api.gui.SimpleGui)5 SlotActionType (net.minecraft.screen.slot.SlotActionType)5 ArmorStandPreset (eu.pb4.armorstandeditor.config.ArmorStandPreset)4 ConfigManager (eu.pb4.armorstandeditor.config.ConfigManager)4 ArmorStandData (eu.pb4.armorstandeditor.helpers.ArmorStandData)4 ArmorStandInventory (eu.pb4.armorstandeditor.helpers.ArmorStandInventory)4 ItemFrameInventory (eu.pb4.armorstandeditor.helpers.ItemFrameInventory)4 ArmorStandEntityAccessor (eu.pb4.armorstandeditor.mixin.ArmorStandEntityAccessor)4 ItemFrameEntityAccessor (eu.pb4.armorstandeditor.mixin.ItemFrameEntityAccessor)4 GuiElement (eu.pb4.sgui.api.elements.GuiElement)4 GuiElementBuilder (eu.pb4.sgui.api.elements.GuiElementBuilder)4 AnvilInputGui (eu.pb4.sgui.api.gui.AnvilInputGui)4 ArrayList (java.util.ArrayList)4 Collection (java.util.Collection)4