From af01beb583fea1d75c8adc9a2b1fc41ef4db024d Mon Sep 17 00:00:00 2001 From: Electroblob <35599699+Electroblob77@users.noreply.github.com> Date: Mon, 2 Jul 2018 22:33:09 +0100 Subject: [PATCH] Spell HUD rewrite and retexturing: - Replaces the old hardcoded drawing methods with a new json-based system with support for multiple inbuilt and resource pack-defined skins. - Adds a config option for choosing the spell HUD skin, along with a custom config GUI screen allowing the user to select from a list of available skins with a preview of the currently selected skin. - Replaces the HUD texture file with a spell_hud subfolder, containing all the necessary textures and json files for the 12 inbuilt skins. - Adds a subtle sound effect and scroling animation when switching spells - Reorganises the control event code into a single handler class and converts this class and the spell HUD class to static event handlers. - Fixes the HUD position option which got broken in the previous spell HUD commit --- .../electroblob/wizardry/CommonProxy.java | 10 +- .../java/electroblob/wizardry/Settings.java | 12 + .../java/electroblob/wizardry/Wizardry.java | 4 +- .../wizardry/WizardryKeyHandler.java | 68 -- .../wizardry/client/ClientProxy.java | 25 +- .../client/SpellHUDSkinChooserEntry.java | 38 ++ .../client/WizardryClientEventHandler.java | 35 - .../client/WizardryControlHandler.java | 132 ++++ .../wizardry/client/gui/GuiSelectHUDSkin.java | 106 +++ .../wizardry/client/gui/GuiSpellDisplay.java | 617 +++++++++++++++--- .../wizardry/registry/WizardrySounds.java | 2 + .../electroblob/wizardry/util/WandHelper.java | 113 +++- .../assets/ebwizardry/lang/en_gb.lang | 2 + .../assets/ebwizardry/lang/en_us.lang | 2 + .../resources/assets/ebwizardry/sounds.json | 4 +- .../assets/ebwizardry/sounds/select.ogg | Bin 0 -> 9316 bytes .../ebwizardry/textures/gui/spell_hud.png | Bin 20225 -> 0 bytes .../textures/gui/spell_hud/_index.json | 50 ++ .../textures/gui/spell_hud/classic.json | 33 + .../textures/gui/spell_hud/classic.png | Bin 0 -> 22426 bytes .../textures/gui/spell_hud/default.json | 33 + .../textures/gui/spell_hud/default.png | Bin 0 -> 20706 bytes .../textures/gui/spell_hud/jungle.json | 33 + .../textures/gui/spell_hud/jungle.png | Bin 0 -> 25335 bytes .../textures/gui/spell_hud/minimal.json | 33 + .../textures/gui/spell_hud/minimal.png | Bin 0 -> 19824 bytes .../textures/gui/spell_hud/no_icon.json | 33 + .../textures/gui/spell_hud/no_icon.png | Bin 0 -> 20184 bytes .../textures/gui/spell_hud/redwood.json | 33 + .../textures/gui/spell_hud/redwood.png | Bin 0 -> 28010 bytes .../textures/gui/spell_hud/sandstone.json | 33 + .../textures/gui/spell_hud/sandstone.png | Bin 0 -> 24369 bytes .../textures/gui/spell_hud/silverwood.json | 33 + .../textures/gui/spell_hud/silverwood.png | Bin 0 -> 27885 bytes .../textures/gui/spell_hud/skyrim_style.json | 33 + .../textures/gui/spell_hud/skyrim_style.png | Bin 0 -> 20676 bytes .../textures/gui/spell_hud/spell_book.json | 33 + .../textures/gui/spell_hud/spell_book.png | Bin 0 -> 23686 bytes .../textures/gui/spell_hud/stone.json | 33 + .../textures/gui/spell_hud/stone.png | Bin 0 -> 24156 bytes .../textures/gui/spell_hud/vanilla_style.json | 33 + .../textures/gui/spell_hud/vanilla_style.png | Bin 0 -> 33784 bytes 42 files changed, 1393 insertions(+), 223 deletions(-) delete mode 100644 src/main/java/electroblob/wizardry/WizardryKeyHandler.java create mode 100644 src/main/java/electroblob/wizardry/client/SpellHUDSkinChooserEntry.java create mode 100644 src/main/java/electroblob/wizardry/client/WizardryControlHandler.java create mode 100644 src/main/java/electroblob/wizardry/client/gui/GuiSelectHUDSkin.java create mode 100644 src/main/resources/assets/ebwizardry/sounds/select.ogg delete mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/_index.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/classic.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/classic.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/stone.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/stone.png create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.json create mode 100644 src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.png diff --git a/src/main/java/electroblob/wizardry/CommonProxy.java b/src/main/java/electroblob/wizardry/CommonProxy.java index cb2e1441..367352c7 100644 --- a/src/main/java/electroblob/wizardry/CommonProxy.java +++ b/src/main/java/electroblob/wizardry/CommonProxy.java @@ -46,13 +46,14 @@ public class CommonProxy { public void registerKeyBindings(){ } - public void registerSpellHUD(){} public net.minecraft.client.model.ModelBiped getWizardArmourModel(){ return null; } public void initGuiBits(){} + + public void registerResourceReloadListener(){} // SECTION Particles // =============================================================================================================== @@ -126,6 +127,8 @@ public class CommonProxy { public void setToNumberSliderEntry(Property property){ } + + public void setToHUDChooserEntry(Property property){} // public void setToEntityNameEntry(Property property){} /** @@ -148,4 +151,9 @@ public class CommonProxy { return null; } + /** Returns an unmodifiable set of the string keys for all of the loaded spell HUD skins. */ + public Set getSpellHUDSkins(){ + return null; + } + } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/Settings.java b/src/main/java/electroblob/wizardry/Settings.java index f409ecf5..3994f11b 100644 --- a/src/main/java/electroblob/wizardry/Settings.java +++ b/src/main/java/electroblob/wizardry/Settings.java @@ -164,6 +164,10 @@ public final class Settings { public boolean showSummonedCreatureNames = true; /** [Client-only] The position of the spell HUD. */ public GuiPosition spellHUDPosition = GuiPosition.BOTTOM_LEFT; + + public static final String DEFAULT_HUD_SKIN_KEY = "default"; // Defined here so it's not in a client-only class. + /** [Client-only] The string identifier of the skin used for the spell HUD. */ + public String spellHUDSkin = DEFAULT_HUD_SKIN_KEY; /** Set of constants for each of the four positions that the spell HUD can be in. */ public enum GuiPosition { @@ -190,6 +194,8 @@ public final class Settings { GuiPosition(String name, boolean flipX, boolean flipY){ this.name = name; + this.flipX = flipX; + this.flipY = flipY; } /** @@ -458,6 +464,12 @@ public final class Settings { property.setLanguageKey("config." + Wizardry.MODID + ".spell_hud_position"); spellHUDPosition = GuiPosition.fromName(property.getString()); propOrder.add(property.getName()); + + property = config.get(CLIENT_CATEGORY, "spellHUDSkin", DEFAULT_HUD_SKIN_KEY, "The skin used for the spell HUD.", Wizardry.proxy.getSpellHUDSkins().toArray(new String[0])); + property.setLanguageKey("config." + Wizardry.MODID + ".spell_hud_skin"); + Wizardry.proxy.setToHUDChooserEntry(property); + spellHUDSkin = property.getString(); + propOrder.add(property.getName()); property = config.get(CLIENT_CATEGORY, "showSummonedCreatureNames", true, "Whether to show summoned creatures' names and owners above their heads."); property.setLanguageKey("config." + Wizardry.MODID + ".show_summoned_creature_names"); diff --git a/src/main/java/electroblob/wizardry/Wizardry.java b/src/main/java/electroblob/wizardry/Wizardry.java index 42b156ca..c746803a 100644 --- a/src/main/java/electroblob/wizardry/Wizardry.java +++ b/src/main/java/electroblob/wizardry/Wizardry.java @@ -120,6 +120,8 @@ public class Wizardry { public void preInit(FMLPreInitializationEvent event){ logger = event.getModLog(); + + proxy.registerResourceReloadListener(); settings.initConfig(event); @@ -162,9 +164,7 @@ public class Wizardry { // Event Handlers GameRegistry.registerWorldGenerator(generator, 0); - MinecraftForge.EVENT_BUS.register(new WizardryKeyHandler()); MinecraftForge.EVENT_BUS.register(instance); - proxy.registerSpellHUD(); // This can't easily be converted to use the new @Mod.EventBusSubscriber system NetworkRegistry.INSTANCE.registerGuiHandler(this, new WizardryGuiHandler()); WizardryPacketHandler.initPackets(); diff --git a/src/main/java/electroblob/wizardry/WizardryKeyHandler.java b/src/main/java/electroblob/wizardry/WizardryKeyHandler.java deleted file mode 100644 index 99852c4c..00000000 --- a/src/main/java/electroblob/wizardry/WizardryKeyHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -package electroblob.wizardry; - -import org.lwjgl.input.Keyboard; - -import electroblob.wizardry.client.ClientProxy; -import electroblob.wizardry.packet.PacketControlInput; -import electroblob.wizardry.packet.WizardryPacketHandler; -import net.minecraft.client.Minecraft; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.InputEvent; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class WizardryKeyHandler { - - boolean NkeyPressed = false; - boolean BkeyPressed = false; - boolean NkeyAlreadyPressed = false; - boolean BkeyAlreadyPressed = false; - - @SubscribeEvent - public void onKeyInput(InputEvent.KeyInputEvent event){ - - // Key pressed - if(Keyboard.getEventKeyState()){ - - if(Wizardry.proxy instanceof ClientProxy){ - - if(ClientProxy.NEXT_SPELL.isPressed() && Minecraft.getMinecraft().inGameHasFocus){ - if(!NkeyPressed){ - NkeyPressed = true; - }else{ - NkeyAlreadyPressed = true; - } - if(!NkeyAlreadyPressed){ - // Packet building - IMessage msg = new PacketControlInput.Message(PacketControlInput.ControlType.NEXT_SPELL_KEY); - WizardryPacketHandler.net.sendToServer(msg); - } - } - - if(ClientProxy.PREVIOUS_SPELL.isPressed() && Minecraft.getMinecraft().inGameHasFocus){ - if(!BkeyPressed){ - BkeyPressed = true; - }else{ - BkeyAlreadyPressed = true; - } - if(!BkeyAlreadyPressed){ - // Packet building - IMessage msg = new PacketControlInput.Message( - PacketControlInput.ControlType.PREVIOUS_SPELL_KEY); - WizardryPacketHandler.net.sendToServer(msg); - } - } - } - } - - // Key released - else{ - if(NkeyPressed){ - NkeyPressed = false; - NkeyAlreadyPressed = false; - }else if(BkeyPressed){ - BkeyPressed = false; - BkeyAlreadyPressed = false; - } - } - } -} diff --git a/src/main/java/electroblob/wizardry/client/ClientProxy.java b/src/main/java/electroblob/wizardry/client/ClientProxy.java index 93deb66d..d688d89f 100644 --- a/src/main/java/electroblob/wizardry/client/ClientProxy.java +++ b/src/main/java/electroblob/wizardry/client/ClientProxy.java @@ -130,6 +130,8 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBlaze; import net.minecraft.client.resources.I18n; +import net.minecraft.client.resources.IReloadableResourceManager; +import net.minecraft.client.resources.IResourceManager; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -185,17 +187,20 @@ public class ClientProxy extends CommonProxy { ClientRegistry.registerKeyBinding(PREVIOUS_SPELL); } - @Override - public void registerSpellHUD(){ - MinecraftForge.EVENT_BUS.register(new GuiSpellDisplay(Minecraft.getMinecraft())); - } - @Override public void initGuiBits(){ mixedFontRenderer = new MixedFontRenderer(Minecraft.getMinecraft().gameSettings, new ResourceLocation("textures/font/ascii.png"), Minecraft.getMinecraft().renderEngine, false); GuiWizardHandbook.initDisplayRecipes(); } + + @Override + public void registerResourceReloadListener(){ + IResourceManager manager = Minecraft.getMinecraft().getResourceManager(); + if(manager instanceof IReloadableResourceManager){ + ((IReloadableResourceManager)manager).registerReloadListener(GuiSpellDisplay::loadSkins); + } + } // SECTION Misc // =============================================================================================================== @@ -204,6 +209,11 @@ public class ClientProxy extends CommonProxy { public void setToNumberSliderEntry(Property property){ property.setConfigEntryClass(NumberSliderEntry.class); } + + @Override + public void setToHUDChooserEntry(Property property){ + property.setConfigEntryClass(SpellHUDSkinChooserEntry.class); + } @Override public World getTheWorld(){ @@ -214,6 +224,11 @@ public class ClientProxy extends CommonProxy { public void playMovingSound(Entity entity, SoundEvent sound, float volume, float pitch, boolean repeat){ Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundEntity(entity, sound, volume, pitch, repeat)); } + + @Override + public Set getSpellHUDSkins(){ + return GuiSpellDisplay.getSkinKeys(); + } // SECTION Items // =============================================================================================================== diff --git a/src/main/java/electroblob/wizardry/client/SpellHUDSkinChooserEntry.java b/src/main/java/electroblob/wizardry/client/SpellHUDSkinChooserEntry.java new file mode 100644 index 00000000..a6872673 --- /dev/null +++ b/src/main/java/electroblob/wizardry/client/SpellHUDSkinChooserEntry.java @@ -0,0 +1,38 @@ +package electroblob.wizardry.client; + +import java.util.Map; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import electroblob.wizardry.client.gui.GuiSelectHUDSkin; +import electroblob.wizardry.client.gui.GuiSpellDisplay; +import net.minecraftforge.client.gui.ForgeGuiFactory.ForgeConfigGui.ModIDEntry; +import net.minecraftforge.fml.client.config.GuiConfig; +import net.minecraftforge.fml.client.config.GuiConfigEntries; +import net.minecraftforge.fml.client.config.GuiConfigEntries.SelectValueEntry; +import net.minecraftforge.fml.client.config.IConfigElement; + +/** + * Custom config GUI for spell HUD skin selection; displays a list of all the loaded skins and a preview of the currently + * selected skin. based off of {@link ModIDEntry} from Forge. + */ +public class SpellHUDSkinChooserEntry extends SelectValueEntry { + + public SpellHUDSkinChooserEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop) + { + super(owningScreen, owningEntryList, prop, getSelectableValues()); + if (this.selectableValues.size() == 0) + this.btnValue.enabled = false; + } + + private static Map getSelectableValues(){ + return GuiSpellDisplay.getSkins().entrySet().stream().collect(Collectors.toMap(Entry::getKey, + e -> e.getValue().getName())); + } + + @Override // Copied from superclass to use custom child screen GUI class + public void valueButtonPressed(int slotIndex){ + mc.displayGuiScreen(new GuiSelectHUDSkin(this.owningScreen, configElement, slotIndex, selectableValues, currentValue, enabled())); + } + +} diff --git a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java index 39cf3b92..ced104f6 100644 --- a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java +++ b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java @@ -7,8 +7,6 @@ import electroblob.wizardry.Wizardry; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.item.ItemSpectralBow; import electroblob.wizardry.item.ItemWand; -import electroblob.wizardry.packet.PacketControlInput; -import electroblob.wizardry.packet.WizardryPacketHandler; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.spell.Flight; @@ -38,7 +36,6 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.village.MerchantRecipe; import net.minecraftforge.client.event.FOVUpdateEvent; import net.minecraftforge.client.event.GuiContainerEvent; -import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderLivingEvent; import net.minecraftforge.client.event.RenderPlayerEvent; @@ -47,7 +44,6 @@ import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -101,37 +97,6 @@ public final class WizardryClientEventHandler { // } } - // Shift-scrolling to change spells - @SubscribeEvent - public static void onMouseEvent(MouseEvent event){ - - EntityPlayer player = Minecraft.getMinecraft().player; - ItemStack wand = player.getHeldItemMainhand(); - - if(!(wand.getItem() instanceof ItemWand)){ - wand = player.getHeldItemOffhand(); - // If the player isn't holding a wand, then nothing else needs to be done. - if(!(wand.getItem() instanceof ItemWand)) return; - } - - if(Minecraft.getMinecraft().inGameHasFocus && !wand.isEmpty() && event.getDwheel() != 0 && player.isSneaking() - && Wizardry.settings.enableShiftScrolling){ - - event.setCanceled(true); - - if(event.getDwheel() > 0){ - // Packet building - IMessage msg = new PacketControlInput.Message(PacketControlInput.ControlType.PREVIOUS_SPELL_KEY); - WizardryPacketHandler.net.sendToServer(msg); - - }else if(event.getDwheel() < 0){ - // Packet building - IMessage msg = new PacketControlInput.Message(PacketControlInput.ControlType.NEXT_SPELL_KEY); - WizardryPacketHandler.net.sendToServer(msg); - } - } - } - @SubscribeEvent public static void onFOVUpdateEvent(FOVUpdateEvent event){ diff --git a/src/main/java/electroblob/wizardry/client/WizardryControlHandler.java b/src/main/java/electroblob/wizardry/client/WizardryControlHandler.java new file mode 100644 index 00000000..8e4fea67 --- /dev/null +++ b/src/main/java/electroblob/wizardry/client/WizardryControlHandler.java @@ -0,0 +1,132 @@ +package electroblob.wizardry.client; + +import org.lwjgl.input.Keyboard; + +import electroblob.wizardry.Wizardry; +import electroblob.wizardry.client.gui.GuiSpellDisplay; +import electroblob.wizardry.item.ItemWand; +import electroblob.wizardry.packet.PacketControlInput; +import electroblob.wizardry.packet.WizardryPacketHandler; +import electroblob.wizardry.registry.WizardrySounds; +import electroblob.wizardry.util.WandHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.MouseEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; +import net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +/** Event handler class responsible for handling wizardry's controls. */ +@SideOnly(Side.CLIENT) +@Mod.EventBusSubscriber(Side.CLIENT) +public class WizardryControlHandler { + + static boolean NkeyPressed = false; + static boolean BkeyPressed = false; + static boolean NkeyAlreadyPressed = false; + static boolean BkeyAlreadyPressed = false; + + @SubscribeEvent + public static void onKeyInput(InputEvent.KeyInputEvent event){ + + // Key pressed + if(Keyboard.getEventKeyState()){ + + if(Wizardry.proxy instanceof ClientProxy){ + + EntityPlayer player = Minecraft.getMinecraft().player; + ItemStack wand = player.getHeldItemMainhand(); + + if(!(wand.getItem() instanceof ItemWand)){ + wand = player.getHeldItemOffhand(); + // If the player isn't holding a wand, then nothing else needs to be done. + if(!(wand.getItem() instanceof ItemWand)) return; + } + + if(ClientProxy.NEXT_SPELL.isPressed() && Minecraft.getMinecraft().inGameHasFocus){ + if(!NkeyPressed){ + NkeyPressed = true; + }else{ + NkeyAlreadyPressed = true; + } + if(!NkeyAlreadyPressed){ + selectNextSpell(wand); + } + } + + if(ClientProxy.PREVIOUS_SPELL.isPressed() && Minecraft.getMinecraft().inGameHasFocus){ + if(!BkeyPressed){ + BkeyPressed = true; + }else{ + BkeyAlreadyPressed = true; + } + if(!BkeyAlreadyPressed){ + selectPreviousSpell(wand); + } + } + } + } + + // Key released + else{ + if(NkeyPressed){ + NkeyPressed = false; + NkeyAlreadyPressed = false; + }else if(BkeyPressed){ + BkeyPressed = false; + BkeyAlreadyPressed = false; + } + } + } + + // Shift-scrolling to change spells + @SubscribeEvent + public static void onMouseEvent(MouseEvent event){ + + EntityPlayer player = Minecraft.getMinecraft().player; + ItemStack wand = player.getHeldItemMainhand(); + + if(!(wand.getItem() instanceof ItemWand)){ + wand = player.getHeldItemOffhand(); + // If the player isn't holding a wand, then nothing else needs to be done. + if(!(wand.getItem() instanceof ItemWand)) return; + } + + if(Minecraft.getMinecraft().inGameHasFocus && !wand.isEmpty() && event.getDwheel() != 0 && player.isSneaking() + && Wizardry.settings.enableShiftScrolling){ + + event.setCanceled(true); + + if(event.getDwheel() > 0){ + selectNextSpell(wand); + }else if(event.getDwheel() < 0){ + selectPreviousSpell(wand); + } + } + } + + private static void selectNextSpell(ItemStack wand){ + // Packet building + IMessage msg = new PacketControlInput.Message(PacketControlInput.ControlType.NEXT_SPELL_KEY); + WizardryPacketHandler.net.sendToServer(msg); + // GUI switch animation + WandHelper.selectNextSpell(wand); // Makes sure the spell is set immediately for the client + GuiSpellDisplay.playSpellSwitchAnimation(true); + Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(WizardrySounds.SELECT_SPELL, 1)); + } + + private static void selectPreviousSpell(ItemStack wand){ + // Packet building + IMessage msg = new PacketControlInput.Message(PacketControlInput.ControlType.PREVIOUS_SPELL_KEY); + WizardryPacketHandler.net.sendToServer(msg); + // GUI switch animation + WandHelper.selectPreviousSpell(wand); // Makes sure the spell is set immediately for the client + GuiSpellDisplay.playSpellSwitchAnimation(false); + Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(WizardrySounds.SELECT_SPELL, 1)); + } +} diff --git a/src/main/java/electroblob/wizardry/client/gui/GuiSelectHUDSkin.java b/src/main/java/electroblob/wizardry/client/gui/GuiSelectHUDSkin.java new file mode 100644 index 00000000..1da12067 --- /dev/null +++ b/src/main/java/electroblob/wizardry/client/gui/GuiSelectHUDSkin.java @@ -0,0 +1,106 @@ +package electroblob.wizardry.client.gui; + +import java.util.Map; + +import javax.annotation.Nullable; + +import com.google.common.collect.Lists; + +import electroblob.wizardry.client.gui.GuiSpellDisplay.Skin; +import electroblob.wizardry.registry.Spells; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraftforge.fml.client.config.GuiSelectString; +import net.minecraftforge.fml.client.config.IConfigElement; + +public class GuiSelectHUDSkin extends GuiSelectString { + + public GuiSelectHUDSkin(GuiScreen parentScreen, IConfigElement configElement, int slotIndex, Map selectableValues, Object currentValue, boolean enabled){ + super(parentScreen, configElement, slotIndex, selectableValues, currentValue, enabled); + } + + @Override + public void initGui(){ + super.initGui(); + this.entryList.setDimensions(150, height, 43, height-43); + this.entryList.left = 10; + this.entryList.headerPadding = 5; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks){ + + super.drawScreen(mouseX, mouseY, partialTicks); + + GlStateManager.disableLighting(); + + if(this.currentValue instanceof String){ + + this.drawString(this.fontRenderer, "Preview:", 170, 44, 0xffffff); + + int previewLeft = 170; + int previewRight = width-10; + int previewTop = 60; + int previewBottom = height-43; + + this.drawGradientRect(previewLeft, previewTop, previewRight, previewBottom, 0x88000000, 0x88000000); + + int previewBorder = 10; + + Skin skin = GuiSpellDisplay.getSkin((String)this.currentValue); + + float scale = Math.min((previewRight - previewLeft - 2*previewBorder)/(float)skin.getWidth(), + (previewBottom - previewTop - 2*previewBorder)/(float)skin.getHeight()); + + float x = (previewLeft + previewRight)/2 - (skin.getWidth()*scale)/2; + float y = (previewBottom + previewTop)/2 + (skin.getHeight()*scale)/2; + + GlStateManager.pushMatrix(); + + GlStateManager.scale(scale, scale, scale); + + skin.drawBackground((int)(x/scale), (int)(y/scale), false, false, + Spells.magic_missile.getIcon(), 0.6f, false); + + skin.drawText((int)(x/scale), (int)(y/scale), false, false, + Spells.none.getDisplayNameWithFormatting(), + Spells.magic_missile.getDisplayNameWithFormatting(), + Spells.none.getDisplayNameWithFormatting(), 0); + + GlStateManager.popMatrix(); + + Skin hovered = getHoveredSkin(mouseX, mouseY); + + if(hovered != null){ + this.drawToolTip(Lists.newArrayList("\u00A7a" + hovered.getName(), "\u00A7e" + hovered.getDescription()), + mouseX, mouseY); + } + } + + GlStateManager.enableLighting(); + } + + /** Returns the skin corresponding to the list entry being hovered over, or null if there is none. */ + @Nullable + private Skin getHoveredSkin(int mouseX, int mouseY){ + + int index = this.entryList.getSlotIndexFromScreenCoords(mouseX, mouseY); + + if(index >= 0 && index <= this.entryList.listEntries.size() && mouseY <= this.entryList.bottom){ + + Object object = entryList.getListEntry(index).getValue(); + + if(object instanceof String){ + return GuiSpellDisplay.getSkin((String)object); + } + } + + return null; + } + + @Override // Stops the world being visible behind the GUI when configuring from within a world + public void drawWorldBackground(int tint){ + this.drawBackground(tint); + } + +} diff --git a/src/main/java/electroblob/wizardry/client/gui/GuiSpellDisplay.java b/src/main/java/electroblob/wizardry/client/gui/GuiSpellDisplay.java index 583d418b..fff4d965 100644 --- a/src/main/java/electroblob/wizardry/client/gui/GuiSpellDisplay.java +++ b/src/main/java/electroblob/wizardry/client/gui/GuiSpellDisplay.java @@ -1,10 +1,25 @@ package electroblob.wizardry.client.gui; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import electroblob.wizardry.Settings; import electroblob.wizardry.SpellGlyphData; import electroblob.wizardry.WizardData; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.client.ClientProxy; +import electroblob.wizardry.client.MixedFontRenderer; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.item.ItemWand; import electroblob.wizardry.registry.Spells; @@ -15,42 +30,78 @@ import electroblob.wizardry.util.WandHelper; import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager.DestFactor; import net.minecraft.client.renderer.GlStateManager.SourceFactor; +import net.minecraft.client.resources.IResource; +import net.minecraft.client.resources.IResourceManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.JsonUtils; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.relauncher.Side; -public class GuiSpellDisplay extends Gui { +@Mod.EventBusSubscriber(Side.CLIENT) +public class GuiSpellDisplay { - private Minecraft mc; - - private static final ResourceLocation texture = new ResourceLocation(Wizardry.MODID, "textures/gui/spell_hud.png"); - - // Measurements - /** Width of the used portion of the HUD texture */ private static final int HUD_WIDTH = 128; - /** Height of the used portion of the HUD texture */ private static final int HUD_HEIGHT = 64; - /** Distance (in x and y) of the spell icon from the screen edge */ private static final int SPELL_ICON_INSET = 2; - /** Line spacing for the spell name (when on two lines) */ private static final int TEXT_LINE_SPACING = 1; - /** Distance in x from the edge of the screen to the spell name */ private static final int TEXT_INSET_X = 42; - /** Distance in x of the cooldown bar from the screen edge */ private static final int COOLDOWN_BAR_INSET_X = 42; - /** Length of the cooldown bar portion of the HUD texture */ private static final int COOLDOWN_BAR_LENGTH = 79; - /** Height of the cooldown bar portion of the HUD texture */ private static final int COOLDOWN_BAR_HEIGHT = 5; - /** Width and height of the spell icon (very unlikely to change!) */private static final int SPELL_ICON_SIZE = 32; + private static final ResourceLocation INDEX = new ResourceLocation(Wizardry.MODID, "textures/gui/spell_hud/_index.json"); - public GuiSpellDisplay(Minecraft minecraft){ - super(); - this.mc = minecraft; + /** A map which stores all loaded HUD skin objects. This gets wiped on resource pack reload and repopulated with + * mappings as specified by {@code _index.json} (these stack between resource packs). The keys in the map correspond + * to the keys in {@code _index.json}, and are sorted in that order, with skins belonging to resource packs sorted + * from lowest to highest priority. The skins in the base mod will therefore always be first. */ + private static final Map skins = new LinkedHashMap<>(12); // 12 is the number of skins packaged with the mod + + private static final Gson gson = new Gson(); + + /** Width and height of the spell icon (very unlikely to change!) */ + private static final int SPELL_ICON_SIZE = 32; + /** Number of ticks the spell switching animation plays for. */ + private static final int SPELL_SWITCH_TIME = 4; + /** Scale of the next/previous spell names. */ + private static final float SPELL_NAME_SCALE = 0.5f; + /** Opacity of the next/previous spell names, as a fraction. */ + private static final float SPELL_NAME_OPACITY = 0.3f; + + /** Controls the spell switching animation. Positive when switching to the next spell, negative when switching to + * the previous spell. Decremented in magnitude by 1 each tick until it reaches 0 again. */ + private static int switchTimer = 0; + + /** + * Starts the spell switching animation. + * @param next True to switch to the next spell, false for the previous spell. + */ + public static void playSpellSwitchAnimation(boolean next){ + switchTimer = next ? SPELL_SWITCH_TIME : -SPELL_SWITCH_TIME; } - + + /** Returns an unmodifiable set of the string keys for all of the loaded spell HUD skins. */ + public static Set getSkinKeys(){ + return Collections.unmodifiableSet(skins.keySet()); + } + + /** Returns an unmodifiable view of the loaded spell HUD skins map. */ + public static Map getSkins(){ + return Collections.unmodifiableMap(skins); + } + + /** Returns the skin that corresponds to the given key. */ + public static Skin getSkin(String key){ + return skins.get(key); + } + + // Normally when extending Gui, you'd have to have an instance to access its methods. However, we're not actually + // using any of them, so this class may as well not bother and just be a static event handler. Neat! @SubscribeEvent - public void draw(RenderGameOverlayEvent event){ + public static void draw(RenderGameOverlayEvent event){ + + Minecraft mc = Minecraft.getMinecraft(); - EntityPlayer player = this.mc.player; + EntityPlayer player = mc.player; // If the player has a wand in each hand, only displays for the one in the main hand. @@ -65,100 +116,502 @@ public class GuiSpellDisplay extends Gui { int width = event.getResolution().getScaledWidth(); int height = event.getResolution().getScaledHeight(); + boolean flipX = Wizardry.settings.spellHUDPosition.flipX; + boolean flipY = Wizardry.settings.spellHUDPosition.flipY; + + Skin skin = skins.get(Wizardry.settings.spellHUDSkin); + + if(skin == null){ + + Wizardry.logger.info("The spell HUD skin '" + Wizardry.settings.spellHUDSkin + "' specified in the config" + + " did not match any of the loaded skins; using the default skin as a fallback."); + + skin = skins.get(Settings.DEFAULT_HUD_SKIN_KEY); + + if(skin == null){ + Wizardry.logger.warn("The default spell HUD skin is missing! A resource pack must have overridden it" + + " with an invalid JSON file (default.json), please try again without any resource packs."); + return; + } + } + + // 'Origin' of the spell hud (bottom left corner of the actual texture, always in the corner of the screen) + int x = flipX ? width : 0; + int y = flipY ? 0: height; + Spell spell = WandHelper.getCurrentSpell(wand); int cooldown = WandHelper.getCurrentCooldown(wand); - float cooldownMultiplier = 1.0f - WandHelper.getUpgradeLevel(wand, WizardryItems.cooldown_upgrade) * Constants.COOLDOWN_REDUCTION_PER_LEVEL; + if(event.getType() == RenderGameOverlayEvent.ElementType.TEXT){ + + float animationProgress = Math.signum(switchTimer) * ((SPELL_SWITCH_TIME - Math.abs(switchTimer) + + event.getPartialTicks()) / SPELL_SWITCH_TIME); + + String prevSpellName = getFormattedSpellName(WandHelper.getPreviousSpell(wand), player, WandHelper.getPreviousCooldown(wand)); + String spellName = getFormattedSpellName(spell, player, cooldown); + String nextSpellName = getFormattedSpellName(WandHelper.getNextSpell(wand), player, WandHelper.getNextCooldown(wand)); - if(player.isPotionActive(WizardryPotions.font_of_mana)){ - // Dividing by this rather than setting it takes upgrades and font of mana into account simultaneously - cooldownMultiplier /= 2 + player.getActivePotionEffect(WizardryPotions.font_of_mana).getAmplifier(); + skin.drawText(x, y, flipX, flipY, prevSpellName, spellName, nextSpellName, animationProgress); + + }else if(event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR){ + + float cooldownMultiplier = 1.0f - WandHelper.getUpgradeLevel(wand, WizardryItems.cooldown_upgrade) * Constants.COOLDOWN_REDUCTION_PER_LEVEL; + + if(player.isPotionActive(WizardryPotions.font_of_mana)){ + // Dividing by this rather than setting it takes upgrades and font of mana into account simultaneously + cooldownMultiplier /= 2 + player.getActivePotionEffect(WizardryPotions.font_of_mana).getAmplifier(); + } + + boolean discovered = true; + + if(!player.capabilities.isCreativeMode && WizardData.get(player) != null){ + discovered = WizardData.get(player).hasSpellBeenDiscovered(spell); + } + + ResourceLocation icon = discovered ? spell.getIcon() : Spells.none.getIcon(); + + float progress = 1; + // Doesn't really matter what progress is when in creative, but we might as well avoid the calculation. + if(!player.capabilities.isCreativeMode && !spell.isContinuous){ + // Subtracted partial tick time to make it smoother + progress = (spell.cooldown * cooldownMultiplier - (float)cooldown + event.getPartialTicks()) + /(spell.cooldown * cooldownMultiplier); + } + + skin.drawBackground(x, y, flipX, flipY, icon, progress, player.capabilities.isCreativeMode); + } - - boolean flipX = Wizardry.settings.spellHUDPosition.flipX; - boolean flipY = Wizardry.settings.spellHUDPosition.flipY; - + } + + /** + * Makes the given opaque colour translucent with the given opacity. + * @param colour An integer colour code, should be a 6-digit hexadecimal (i.e. opaque). + * @param opacity The opacity to apply to the given colour, as a fraction between 0 and 1. + * @return The resulting integer colour code, which will be an 8-digit hexadecimal. + */ + private static int makeTranslucent(int colour, float opacity){ + return colour + ((int)(0xff * opacity * 0x01000000)); + } + + /** Gets the name of the given spell, with formatted added according to its cooldown and whether the given player + * has discovered it. + * @param spell The spell to get the name of. + * @param The player to test for having discovered the given spell. + * @param cooldown The spell's current cooldown. + * @return The spell name, with relevant formatting added, for use with the {@link MixedFontRenderer}. + */ + private static String getFormattedSpellName(Spell spell, EntityPlayer player, int cooldown){ + boolean discovered = true; if(!player.capabilities.isCreativeMode && WizardData.get(player) != null){ discovered = WizardData.get(player).hasSpellBeenDiscovered(spell); } + + // Makes spells greyed out if they are in cooldown or if the player has the arcane jammer effect + String format = cooldown > 0 || player.isPotionActive(WizardryPotions.arcane_jammer) ? "\u00A78" : spell.element.getFormattingCode(); + if(!discovered) format = "\u00A79"; + + String name = discovered ? spell.getDisplayName() : SpellGlyphData.getGlyphName(spell, player.world); + name = format + name; + if(!discovered) name = "#" + name + "#"; + + return name; + } + + /** + * Draws the given string at the given position, scaling it if it does not fit within the given width. + * @param font A {@code FontRenderer} object. + * @param text The text to display. + * @param x The x position of the top-left corner of the text. + * @param y The y position of the top-left corner of the text. + * @param scale The scale that the text should be if it does not exceed the maximum width. + * @param colour The colour to render the text in, supports translucency. + * @param width The maximum width of the text. This is not scaled; you should pass in the width of the actual + * area of the screen in which the text needs to fit. + * @param centre Whether to adjust the y position such that the centre of the text lines up with where its centre + * would be if it was not scaled (automatically or manually). + * @param alignR True to right-align the text, false for normal left alignment. + */ + private static void drawScaledStringToWidth(FontRenderer font, String text, float x, float y, float scale, int colour, float width, boolean centre, boolean alignR){ + + float textWidth = font.getStringWidth(text) * scale; + float textHeight = font.FONT_HEIGHT * scale; + + if(textWidth > width){ + scale *= width/textWidth; + }else if(alignR){ // Alignment makes no difference if the string fills the entire width + x += width - textWidth; + } + + if(centre) y += (font.FONT_HEIGHT - textHeight)/2; + + drawScaledTranslucentString(font, text, x, y, scale, colour); + } + + /** Draws the given string at the given position, scaling the text by the specified factor. Also enables blending to + * render text in semitransparent colours (e.g. 0x88ffffff). */ + private static void drawScaledTranslucentString(FontRenderer font, String text, float x, float y, float scale, int colour){ + + GlStateManager.pushMatrix(); + GlStateManager.enableBlend(); + GlStateManager.scale(scale, scale, scale); + // Because we scaled it, the coordinates have to be scaled inversely + x /= scale; + y /= scale; + font.drawStringWithShadow(text, x, y, colour); + GlStateManager.disableBlend(); + GlStateManager.popMatrix(); + } + + @SubscribeEvent + public static void onLivingUpdateEvent(LivingUpdateEvent event){ + if(event.getEntity() == Minecraft.getMinecraft().player){ // Makes sure this only gets called once each tick. + if(switchTimer > 0) switchTimer--; + else if(switchTimer < 0) switchTimer++; + } + } + + /** Called from preInit in the main mod class (via the proxies) to initialise the HUD skins, and again on each + * resource reload. */ + public static void loadSkins(IResourceManager manager){ + + try { - if(event.getType() == RenderGameOverlayEvent.ElementType.TEXT){ - - // Makes spells greyed out if they are in cooldown or if the player has the arcane jammer effect - String colour = cooldown > 0 || player.isPotionActive(WizardryPotions.arcane_jammer) ? "\u00A78" : spell.element.getFormattingCode(); - if(!discovered) colour = "\u00A79"; - String spellName = discovered ? spell.getDisplayName() : SpellGlyphData.getGlyphName(spell, player.world); - FontRenderer font = discovered ? this.mc.fontRenderer : this.mc.standardGalacticFontRenderer; - - int maxWidth = HUD_WIDTH - TEXT_INSET_X; - int stringWidth = font.getStringWidth(spellName); - int iconMidpoint = (SPELL_ICON_SIZE + 2*SPELL_ICON_INSET)/2; // Should be 18 - - // TODO: Make a 'scrolling' animation when changing spells, using the text alpha channel to fade it in - // and out. - if(stringWidth <= maxWidth){ - //GL11.glPushMatrix(); - //GL11.glEnable(GL11.GL_BLEND); - //OpenGlHelper.glBlendFunc(770, 771, 1, 0); // Taken from GuiInGame. TODO: Replace with OpenGL caps. - // Single line is rendered more centrally - font.drawStringWithShadow(colour + spellName, flipX ? width - TEXT_INSET_X - stringWidth : TEXT_INSET_X, - // The text is an odd number of pixels high so we need to subtract an extra 1 when at the bottom - flipY ? iconMidpoint - font.FONT_HEIGHT/2 : height - iconMidpoint - font.FONT_HEIGHT/2 - 1, 0xffffffff); - //GL11.glDisable(GL11.GL_BLEND); - //GL11.glPopMatrix(); - }else{ - - int lineNumber = 0; - - List lines = font.listFormattedStringToWidth(spellName, maxWidth); - - for(String line : lines){ - int lineWidth = font.getStringWidth((String)line); - font.drawStringWithShadow(colour + (String)line, flipX ? width - TEXT_INSET_X - lineWidth : TEXT_INSET_X, - // This time there are two lines so we need to subtract the full line height, and an extra 1 for the spacing - (flipY ? iconMidpoint - font.FONT_HEIGHT - 1 : height - iconMidpoint - font.FONT_HEIGHT - 1) - // Note that there should only ever be two lines maximum - + lineNumber*(font.FONT_HEIGHT + TEXT_LINE_SPACING), 0xffffffff); - lineNumber++; + List indexFiles = manager.getAllResources(INDEX); + + skins.clear(); // Wipes the skins map before repopulating it + + for(IResource indexFile : indexFiles){ + + BufferedReader reader = new BufferedReader(new InputStreamReader(indexFile.getInputStream())); + + JsonElement je = gson.fromJson(reader, JsonElement.class); + JsonObject json = je.getAsJsonObject(); + + // Need to iterate over these since we don't know what they're called or how many there are + for(Entry entry : json.entrySet()){ + + String key = entry.getKey(); // Find out what each element is called, this will be the skins map key + + // It's a good idea to use JsonUtils because it produces more helpful error messages (that pack + // makers should understand). + + JsonObject skinData = JsonUtils.getJsonObject(json, key); + + String[] splitName = ResourceLocation.splitObjectName(JsonUtils.getString(skinData, "texture")); + ResourceLocation texture = new ResourceLocation(splitName[0], "textures/" + splitName[1] + ".png"); + + splitName = ResourceLocation.splitObjectName(JsonUtils.getString(skinData, "metadata")); + ResourceLocation metadata = new ResourceLocation(splitName[0], "textures/" + splitName[1] + ".json"); + + // The nice thing about this is it overwrites the existing mapping, and since the index files are in + // ascending order of resource pack priority, this means resource packs can override existing skins + // by specifying one with the same key. + skins.put(key, new Skin(texture, metadata)); } } - }else if(event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR){ + } catch (IOException e){ + // If an exception is thrown, chances are the resource pack did not have a spell_hud folder, so nothing + // else needs to be done. + Wizardry.logger.error("Error reading spell HUD skin index file: ", e); + } + } + + /** Instances of this class represent individual HUD skins, complete with texture and all necessary metadata. This + * class serves to separate the logic behind the spell HUD from its actual rendering. + * All information and processing done within this class relates only to the actual drawing; spells and such like + * must be queried outside of this class and fed into the methods as appropriate. */ + public static class Skin { + + /** The texture file for this skin. */ + private final ResourceLocation texture; + /** The display name of the skin in the config menu. */ + private String name; + /** The description of the skin shown when its button is hovered over in the config menu. */ + private String description; + + /** Width of the entire spell HUD. */ + private int width; + /** Height of the entire spell HUD. */ + private int height; + + /** Whether the entire HUD is flipped when on the right-hand side of the screen. If this is false, the HUD will + * still appear on the right-hand side of the screen, but in the same orientation as on the left-hand side. */ + private boolean mirrorX; + /** Whether the entire HUD is flipped when at the top of the screen. If this is false, the HUD will + * still appear at the top of the screen, but in the same orientation as at the bottom. */ + private boolean mirrorY; + + /** Distance of the spell icon from the left edge of the screen (or right edge when flipped). */ + private int spellIconInsetX; + /** Distance of the spell icon from the bottom edge of the screen (or top edge when flipped). */ + private int spellIconInsetY; + + /** Distance of the spell name from the left edge of the screen (or right edge when flipped). */ + private int textInsetX; + /** Distance of the spell name from the bottom edge of the screen (or the top edge when flipped). */ + private int textInsetY; + + /** Horizontal distance between the start of adjacent spell names. */ + private int cascadeOffsetX; + /** Vertical distance between the start of adjacent spell names. */ + private int cascadeOffsetY; + + /** Distance of the cooldown bar from the left edge of the screen (or right edge when flipped). */ + private int cooldownBarX; + /** Distance of the cooldown bar from the bottom edge of the screen (or top edge when flipped). */ + private int cooldownBarY; + /** Length of the cooldown bar. */ + private int cooldownBarLength; + /** Height of the cooldown bar. */ + private int cooldownBarHeight; + + /** Whether the cooldown bar is flipped horizontally when the HUD is on the right-hand side of the screen. */ + private boolean cooldownBarMirrorX; + /** Whether the cooldown bar is flipped vertically when the HUD is at the top of the screen. */ + private boolean cooldownBarMirrorY; + + /** Whether the cooldown bar progress overlay is shown when the cooldown bar is full (i.e. when progress = 1). */ + private boolean showCooldownWhenFull; + + private final Minecraft mc; + + /** Creates a new skin with the given texture and reads its values from the given metadata json file. */ + public Skin(ResourceLocation texture, ResourceLocation metadata){ + + mc = Minecraft.getMinecraft(); + + this.texture = texture; + + try { + // This time we only want the highest priority file + IResource metadataFile = Minecraft.getMinecraft().getResourceManager().getResource(metadata); + BufferedReader reader = new BufferedReader(new InputStreamReader(metadataFile.getInputStream())); + + JsonElement je = gson.fromJson(reader, JsonElement.class); + + parseJson(je.getAsJsonObject()); + + } catch (IOException e){ + // If an exception is thrown, chances are the resource pack did not have a spell_hud folder, so nothing + // else needs to be done. + Wizardry.logger.error("Error reading spell HUD skin metadata file: ", e); + } + } + + /** Returns the display name of this HUD skin, which is shown in the config GUI. */ + public String getName(){ + return name; + } + + /** Returns the description of this HUD skin, which is shown in its tooltip in the config GUI. */ + public String getDescription(){ + return description; + } + + /** Returns the overall width of this spell HUD skin. */ + public int getWidth(){ + return width; + } + + /** Returns the overall height of this spell HUD skin. */ + public int getHeight(){ + return height; + } + + /** Actually reads the metadata values for this skin from the json file. */ + private void parseJson(JsonObject json){ + + // For now, all the keys must be present for the metadata file to work (the only ones that could reasonably + // have a default anyway are the mirror values). + + name = JsonUtils.getString(json, "name"); + description = JsonUtils.getString(json, "description"); + + width = JsonUtils.getInt(json, "width"); + if(width > 128) Wizardry.logger.warn("The width of the spell HUD skin " + name + " exceeds 128, this may cause it to render strangely."); + height = JsonUtils.getInt(json, "height"); + + JsonObject mirror = JsonUtils.getJsonObject(json, "mirror"); + mirrorX = JsonUtils.getBoolean(mirror, "x"); + mirrorY = JsonUtils.getBoolean(mirror, "y"); + + JsonObject spellIconInset = JsonUtils.getJsonObject(json, "spell_icon_inset"); + spellIconInsetX = JsonUtils.getInt(spellIconInset, "x"); + spellIconInsetY = JsonUtils.getInt(spellIconInset, "y"); + + JsonObject textInset = JsonUtils.getJsonObject(json, "text_inset"); + textInsetX = JsonUtils.getInt(textInset, "x"); + textInsetY = JsonUtils.getInt(textInset, "y"); + + JsonObject cascadeOffset = JsonUtils.getJsonObject(json, "spell_cascade_offset"); + cascadeOffsetX = JsonUtils.getInt(cascadeOffset, "x"); + cascadeOffsetY = JsonUtils.getInt(cascadeOffset, "y"); + + JsonObject cooldownBar = JsonUtils.getJsonObject(json, "cooldown_bar"); + cooldownBarX = JsonUtils.getInt(cooldownBar, "x"); + cooldownBarY = JsonUtils.getInt(cooldownBar, "y"); + cooldownBarLength = JsonUtils.getInt(cooldownBar, "length"); + cooldownBarHeight = JsonUtils.getInt(cooldownBar, "height"); + + JsonObject cooldownBarMirror = JsonUtils.getJsonObject(cooldownBar, "mirror"); + cooldownBarMirrorX = JsonUtils.getBoolean(cooldownBarMirror, "x"); + cooldownBarMirrorY = JsonUtils.getBoolean(cooldownBarMirror, "y"); + + showCooldownWhenFull = JsonUtils.getBoolean(cooldownBar, "show_when_full"); + + } + + // The idea of these methods is that everything in here relates only to the actual drawing of the HUD. In other + // words, all processing of which spells to draw and so on is done outside of here. This means that the config + // GUI can easily display its preview without having a player or wand stack object to query. + + /** + * Draws the background layer of this HUD skin at the given position with the given orientations, with the given + * spell icon and cooldown bar progress. + * + * @param x The x-coordinate of the corner of the spell HUD. The bottom left corner of the actual texture + * will always be at this position unless mirrorX/Y is false, so for example if flipX is false and flipY is true, + * this will be the corner of the HUD that is closest to the top left corner of the screen. + * @param y The y-coordinate of the corner of the spell HUD; see above. + * @param flipX Whether to flip the HUD horizontally. + * @param flipY Whether to flip the HUD vertically. + * @param icon A {@code ResourceLocation} corresponding to the icon of the selected spell. + * @param cooldownBarProgress The fraction of the cooldown bar to draw; must be between 0 and 1 (inclusive). + * @param creativeMode True to draw the creative mode HUD, false for the survival mode version. + */ + public void drawBackground(int x, int y, boolean flipX, boolean flipY, ResourceLocation icon, float cooldownBarProgress, boolean creativeMode){ + + // Moves the origin if the HUD does not mirror; neatens the rest of the code. + if(flipX && !mirrorX) x -= width; + if(flipY && !mirrorY) y += height; + GlStateManager.pushMatrix(); GlStateManager.enableBlend(); GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); GlStateManager.color(1, 1, 1); // Spell illustration - this is now done first so it is behind the HUD texture - this.mc.renderEngine.bindTexture(discovered ? spell.getIcon() : Spells.none.getIcon()); + mc.renderEngine.bindTexture(icon); - WizardryUtilities.drawTexturedRect(flipX ? width - SPELL_ICON_INSET - SPELL_ICON_SIZE : SPELL_ICON_INSET, - flipY ? SPELL_ICON_INSET : height - SPELL_ICON_INSET - SPELL_ICON_SIZE, 0, 0, 32, 32, 32, 32); + int x1 = flipX && mirrorX ? x - spellIconInsetX - SPELL_ICON_SIZE : x + spellIconInsetX; + // y is upside-down so this is the other way round + int y1 = flipY && mirrorY ? y + spellIconInsetY : y - spellIconInsetY - SPELL_ICON_SIZE; - this.mc.renderEngine.bindTexture(texture); + WizardryUtilities.drawTexturedRect(x1, y1, 0, 0, SPELL_ICON_SIZE, SPELL_ICON_SIZE, SPELL_ICON_SIZE, SPELL_ICON_SIZE); // Background of spell hud - WizardryUtilities.drawTexturedFlippedRect(flipX ? width-HUD_WIDTH : 0, flipY ? 0 : height-HUD_HEIGHT, - // The 128 here is a uv value, not a dimension, and hence is left as a hardcoded number. - player.capabilities.isCreativeMode ? 128 : 0, 0, HUD_WIDTH, HUD_HEIGHT, 256, 256, flipX, flipY); + mc.renderEngine.bindTexture(texture); + + x1 = flipX && mirrorX ? x - width : x; + y1 = flipY && mirrorY ? y : y - height; + // The 128 here is a uv value, not a dimension, and hence is left as a hardcoded number. + // TODO: Since the HUD is wider than it is tall, perhaps the creative mode texture should be in the bottom half instead of the right half? + WizardryUtilities.drawTexturedFlippedRect(x1, y1, creativeMode ? 128 : 0, 0, width, height, 256, 256, flipX && mirrorX, flipY && mirrorY); // Cooldown bar - if(!player.capabilities.isCreativeMode && cooldown > 0){ + if(!creativeMode && cooldownBarProgress > 0 && (showCooldownWhenFull || cooldownBarProgress < 1)){ - int l = (int)(((double)(spell.cooldown * cooldownMultiplier - cooldown) - / (double)(spell.cooldown * cooldownMultiplier)) * COOLDOWN_BAR_LENGTH); - // Likewise, the 64 here is a uv value and therefore left as a hardcoded number. - WizardryUtilities.drawTexturedFlippedRect(flipX ? width - COOLDOWN_BAR_INSET_X - COOLDOWN_BAR_LENGTH : COOLDOWN_BAR_INSET_X, - flipY ? 1 : height-1-COOLDOWN_BAR_HEIGHT, 0, 64, l, COOLDOWN_BAR_HEIGHT, 256, 256, false, flipY); + int l = (int)(cooldownBarProgress * cooldownBarLength); + + x1 = flipX && mirrorX ? x - cooldownBarX - (cooldownBarMirrorX ? l : cooldownBarLength) : x + cooldownBarX; + y1 = flipY && mirrorY ? y + cooldownBarY : y - cooldownBarY - cooldownBarHeight; + + int u = cooldownBarX; // This doesn't change, even when cooldownBarMirrorX is true, because it should + int v = height; // always start with the left-hand in the actual texture file + + WizardryUtilities.drawTexturedFlippedRect(x1, y1, u, v, l, cooldownBarHeight, 256, 256, flipX && cooldownBarMirrorX, flipY && cooldownBarMirrorY); } GlStateManager.popMatrix(); // Blend needs to be left enabled here because otherwise the hotbar becomes opaque } + + /** + * Draws the text layer of this HUD skin at the given position with the given orientations, with the given + * spell name strings. + * + * @param x The x-coordinate of the corner of the spell HUD. The bottom left corner of the actual texture + * will always be at this position, so for example if flipX is false and flipY is true, this will be the corner + * of the HUD that is closest to the top left corner of the screen. + * @param y The y-coordinate of the corner of the spell HUD; see above. + * @param flipX Whether to flip the HUD horizontally. + * @param flipY Whether to flip the HUD vertically. + * @param prevSpellName The name of the previous spell. This string will be drawn directly using the + * {@link MixedFontRenderer}; as such it should be supplied with formatting codes and # characters already + * appended. + * @param spellName The name of the currently selected spell; see above. + * @param nextSpellName The name of the next spell; see above. + * @param animationProgress The progress of the spell switching animation, as a fraction between 0 and 1 + * (inclusive). Positive values indicate switching forwards, negative values indicate switching backwards, and + * a value of zero indicates that the spell is not currently being switched. + */ + public void drawText(int x, int y, boolean flipX, boolean flipY, String prevSpellName, String spellName, String nextSpellName, float animationProgress){ + + // Moves the origin if the HUD does not mirror; neatens the rest of the code. + if(flipX && !mirrorX) x -= width; + if(flipY && !mirrorY) y += height; + + FontRenderer font = ClientProxy.mixedFontRenderer; // On this occasion we're client-side so this is OK + + // Position of the selected spell name in normal display, also used for interpolation when animating + int x1 = flipX && mirrorX ? x - width : x + textInsetX; + // The text is an odd number of pixels high so we need to subtract an extra 1 when not flipped + int y1 = flipY && mirrorY ? y + textInsetY - font.FONT_HEIGHT/2 + 2 : y - textInsetY - font.FONT_HEIGHT/2 - 1; + + int maxWidth = width - textInsetX; // Maximum width of the text + + if(animationProgress == 0){ // Normal display + + float xPrev = flipX && mirrorX ? x - width : x + textInsetX - (flipY ? -1 : 1) * cascadeOffsetX; + float xNext = flipX && mirrorX ? x - width : x + textInsetX + (flipY ? -1 : 1) * cascadeOffsetX; + // Don't ask me why adding 1 to this makes it look more even, it just does! + float yPrev = y1 - (cascadeOffsetY + 1); // No need to account for flipY because previous is always above. + float yNext = y1 + cascadeOffsetY; // No need to account for flipY because next is always below. + float maxWidthPrev = maxWidth + (flipY ? -1 : 1) * cascadeOffsetX; + float maxWidthNext = maxWidth - (flipY ? -1 : 1) * cascadeOffsetX; + int nextPrevClr = makeTranslucent(0xffffff, SPELL_NAME_OPACITY); + + drawScaledStringToWidth(font, prevSpellName, xPrev, yPrev, SPELL_NAME_SCALE, nextPrevClr, maxWidthPrev, true, flipX && mirrorX); + drawScaledStringToWidth(font, spellName, x1, y1, 1, 0xffffffff, maxWidth, true, flipX && mirrorX); + drawScaledStringToWidth(font, nextSpellName, xNext, yNext, SPELL_NAME_SCALE, nextPrevClr, maxWidthNext, true, flipX && mirrorX); + + }else{ // Switching spells + + boolean reverse = animationProgress < 0; + if(reverse) animationProgress = 1 - Math.abs(animationProgress); // Simplest way of reversing the animation + + float xPrev = flipX && mirrorX ? x - width : x + textInsetX - (flipY ? -1 : 1) * cascadeOffsetX * animationProgress; + float xNext = flipX && mirrorX ? x - width : x + textInsetX + (flipY ? -1 : 1) * cascadeOffsetX * (1 - animationProgress); + float yPrev = y1 - (cascadeOffsetY + 1) * animationProgress; // No need to account for flipY because previous is always above. + float yNext = y1 + cascadeOffsetY * (1 - animationProgress); // No need to account for flipY because next is always below. + float maxWidthPrev = maxWidth + (flipY ? -1 : 1) * cascadeOffsetX * animationProgress; + float maxWidthNext = maxWidth - (flipY ? -1 : 1) * cascadeOffsetX * (1 - animationProgress); + float scalePrev = SPELL_NAME_SCALE + (1 - SPELL_NAME_SCALE) * (1 - animationProgress); + float scaleNext = SPELL_NAME_SCALE + (1 - SPELL_NAME_SCALE) * (animationProgress); + int clrPrev = makeTranslucent(0xffffff, SPELL_NAME_OPACITY + (1 - SPELL_NAME_OPACITY) * (1 - animationProgress)); + int clrNext = makeTranslucent(0xffffff, SPELL_NAME_OPACITY + (1 - SPELL_NAME_OPACITY) * animationProgress); + + if(reverse){ // Switching to previous spell + + // Only renders the next spell and the current one + drawScaledStringToWidth(font, spellName, xPrev, yPrev, scalePrev, clrPrev, maxWidthPrev, true, flipX && mirrorX); + drawScaledStringToWidth(font, nextSpellName, xNext, yNext, scaleNext, clrNext, maxWidthNext, true, flipX && mirrorX); + + }else{ // Switching to next spell + + // Only renders the previous spell and the current one + drawScaledStringToWidth(font, prevSpellName, xPrev, yPrev, scalePrev, clrPrev, maxWidthPrev, true, flipX && mirrorX); + drawScaledStringToWidth(font, spellName, xNext, yNext, scaleNext, clrNext, maxWidthNext, true, flipX && mirrorX); + + } + } + } + } } diff --git a/src/main/java/electroblob/wizardry/registry/WizardrySounds.java b/src/main/java/electroblob/wizardry/registry/WizardrySounds.java index f9a2b90f..5b50eb61 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardrySounds.java +++ b/src/main/java/electroblob/wizardry/registry/WizardrySounds.java @@ -37,6 +37,7 @@ public final class WizardrySounds { public static final SoundEvent SPELL_LOOP_WIND = createSound("wind"); public static final SoundEvent SPELL_EARTHQUAKE = createSound("rumble"); public static final SoundEvent SPELL_FORCE = createSound("force"); + public static final SoundEvent SELECT_SPELL = createSound("select"); /** Trick borrowed from the Twilight Forest, makes things neater. */ public static SoundEvent createSound(String name){ @@ -65,5 +66,6 @@ public final class WizardrySounds { event.getRegistry().register(SPELL_LOOP_WIND); event.getRegistry().register(SPELL_EARTHQUAKE); event.getRegistry().register(SPELL_FORCE); + event.getRegistry().register(SELECT_SPELL); } } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/util/WandHelper.java b/src/main/java/electroblob/wizardry/util/WandHelper.java index a98788fb..f4a01a04 100644 --- a/src/main/java/electroblob/wizardry/util/WandHelper.java +++ b/src/main/java/electroblob/wizardry/util/WandHelper.java @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Set; +import electroblob.wizardry.item.ItemWand; import electroblob.wizardry.registry.Spells; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.spell.Spell; @@ -116,50 +117,82 @@ public final class WandHelper { return Spells.none; } + + /** Returns the spell after the currently selected spell for the given wand, or the 'none' spell if the wand has no + * spell data. */ + public static Spell getNextSpell(ItemStack wand){ + + Spell[] spells = getSpells(wand); + + if(wand.getTagCompound() != null){ + return spells[getNextSpellIndex(wand)]; + } + + return Spells.none; + } + + /** Returns the spell before the currently selected spell for the given wand, or the 'none' spell if the wand has no + * spell data. */ + public static Spell getPreviousSpell(ItemStack wand){ + + Spell[] spells = getSpells(wand); + + if(wand.getTagCompound() != null){ + return spells[getPreviousSpellIndex(wand)]; + } + + return Spells.none; + } /** Selects the next spell in this wand's list of spells. */ public static void selectNextSpell(ItemStack wand){ // 5 here because if the spell array doesn't exist, the wand can't possibly have attunement upgrades - if(getSpells(wand).length < 0) setSpells(wand, new Spell[5]); + if(getSpells(wand).length < 0) setSpells(wand, new Spell[ItemWand.BASE_SPELL_SLOTS]); if(wand.getTagCompound() != null){ - - int numberOfSpells = getSpells(wand).length; - int selectedSpell = wand.getTagCompound().getInteger(SELECTED_SPELL_KEY); - - // Greater than or equal to so that if attunement upgrades are somehow removed by NBT modification it just - // resets. - if(selectedSpell >= numberOfSpells - 1){ - selectedSpell = 0; - }else{ - selectedSpell++; - } - - wand.getTagCompound().setInteger(SELECTED_SPELL_KEY, selectedSpell); - + wand.getTagCompound().setInteger(SELECTED_SPELL_KEY, getNextSpellIndex(wand)); } } /** Selects the previous spell in this wand's list of spells. */ public static void selectPreviousSpell(ItemStack wand){ - // 5 here because if the spell array doesn't exist, the wand can't possibly have attunement upgrades - if(getSpells(wand).length < 0) setSpells(wand, new Spell[5]); - // This cannot possibly be null here, and yet I am getting an NPE... + if(getSpells(wand).length < 0) setSpells(wand, new Spell[ItemWand.BASE_SPELL_SLOTS]); + if(wand.getTagCompound() != null){ - - int numberOfSpells = getSpells(wand).length; - int selectedSpell = wand.getTagCompound().getInteger(SELECTED_SPELL_KEY); - - if(selectedSpell <= 0){ - selectedSpell = numberOfSpells - 1; - }else{ - selectedSpell--; - } - - wand.getTagCompound().setInteger(SELECTED_SPELL_KEY, selectedSpell); + wand.getTagCompound().setInteger(SELECTED_SPELL_KEY, getPreviousSpellIndex(wand)); } } + + private static int getNextSpellIndex(ItemStack wand){ + + int numberOfSpells = getSpells(wand).length; + int spellIndex = wand.getTagCompound().getInteger(SELECTED_SPELL_KEY); + + // Greater than or equal to so that if attunement upgrades are somehow removed by NBT modification it just + // resets. + if(spellIndex >= numberOfSpells - 1){ + spellIndex = 0; + }else{ + spellIndex++; + } + + return spellIndex; + } + + private static int getPreviousSpellIndex(ItemStack wand){ + + int numberOfSpells = getSpells(wand).length; + int spellIndex = wand.getTagCompound().getInteger(SELECTED_SPELL_KEY); + + if(spellIndex <= 0){ + spellIndex = numberOfSpells - 1; + }else{ + spellIndex--; + } + + return spellIndex; + } /** * Returns an array of the cooldowns for each spell bound to the given wand. As of Wizardry 1.1, this array is not @@ -210,6 +243,28 @@ public final class WandHelper { // Don't need to check if the tag compound is null since the above check is equivalent. return cooldowns[wand.getTagCompound().getInteger(SELECTED_SPELL_KEY)]; } + + /** Returns the given wand's cooldown for the spell after the currently selected spell, or 0 if the wand has no + * cooldown data. */ + public static int getNextCooldown(ItemStack wand){ + + int[] cooldowns = getCooldowns(wand); + + if(cooldowns.length == 0) return 0; + // Don't need to check if the tag compound is null since the above check is equivalent. + return cooldowns[getNextSpellIndex(wand)]; + } + + /** Returns the given wand's cooldown for the spell before the currently selected spell, or 0 if the wand has no + * cooldown data. */ + public static int getPreviousCooldown(ItemStack wand){ + + int[] cooldowns = getCooldowns(wand); + + if(cooldowns.length == 0) return 0; + // Don't need to check if the tag compound is null since the above check is equivalent. + return cooldowns[getPreviousSpellIndex(wand)]; + } /** Sets the given wand's cooldown for the currently selected spell. */ public static void setCurrentCooldown(ItemStack wand, int cooldown){ diff --git a/src/main/resources/assets/ebwizardry/lang/en_gb.lang b/src/main/resources/assets/ebwizardry/lang/en_gb.lang index 17165266..79eb401e 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_gb.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_gb.lang @@ -710,6 +710,7 @@ config.ebwizardry.cast_command_multiplier_limit=Cast Command Multiplier Limit config.ebwizardry.summoned_creature_targets_whitelist=Summoned Creature Target Whitelist config.ebwizardry.summoned_creature_targets_blacklist=Summoned Creature Target Blacklist config.ebwizardry.spell_hud_position=Spell HUD Position +config.ebwizardry.spell_hud_skin=Spell HUD Skin config.ebwizardry.cast_command_name=Cast Spell Command Name config.ebwizardry.discoverspell_command_name=Discover Spell Command Name config.ebwizardry.ally_command_name=Set Ally Command Name @@ -746,6 +747,7 @@ config.ebwizardry.cast_command_multiplier_limit.tooltip=Upper limit for the mult config.ebwizardry.summoned_creature_targets_whitelist.tooltip=List of names of entities which summoned creatures and wizards are allowed to attack, in addition to the defaults. Add mod creatures to this list if you want summoned creatures to attack them and they aren't already doing so. Entity names are not case sensitive. For mod entities, prefix with the mod ID (e.g. ebwizardry:wizard). config.ebwizardry.summoned_creature_targets_blacklist.tooltip=List of names of entities which summoned creatures and wizards are specifically not allowed to attack, overriding the defaults and the whitelist. Add creatures to this list if allowing them to be attacked causes problems or is too destructive (removing creepers from this list is done at your own risk!). Entity names are not case sensitive. For mod entities, prefix with the mod ID (e.g. ebwizardry:wizard). config.ebwizardry.spell_hud_position.tooltip=The position of the spell HUD. +config.ebwizardry.spell_hud_skin.tooltip=Change the look of the spell HUD... config.ebwizardry.cast_command_name.tooltip=The name of the /cast command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /cast you would type /magic instead. config.ebwizardry.discoverspell_command_name.tooltip=The name of the /discoverspell command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /discoverspell you would type /magic instead. config.ebwizardry.ally_command_name.tooltip=The name of the /ally command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /ally you would type /magic instead. diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index fe97b0ae..449313b5 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -710,6 +710,7 @@ config.ebwizardry.cast_command_multiplier_limit=Cast Command Multiplier Limit config.ebwizardry.summoned_creature_targets_whitelist=Summoned Creature Target Whitelist config.ebwizardry.summoned_creature_targets_blacklist=Summoned Creature Target Blacklist config.ebwizardry.spell_hud_position=Spell HUD Position +config.ebwizardry.spell_hud_skin=Spell HUD Skin config.ebwizardry.cast_command_name=Cast Spell Command Name config.ebwizardry.discoverspell_command_name=Discover Spell Command Name config.ebwizardry.ally_command_name=Set Ally Command Name @@ -746,6 +747,7 @@ config.ebwizardry.cast_command_multiplier_limit.tooltip=Upper limit for the mult config.ebwizardry.summoned_creature_targets_whitelist.tooltip=List of names of entities which summoned creatures and wizards are allowed to attack, in addition to the defaults. Add mod creatures to this list if you want summoned creatures to attack them and they aren't already doing so. Entity names are not case sensitive. For mod entities, prefix with the mod ID (e.g. ebwizardry:wizard). config.ebwizardry.summoned_creature_targets_blacklist.tooltip=List of names of entities which summoned creatures and wizards are specifically not allowed to attack, overriding the defaults and the whitelist. Add creatures to this list if allowing them to be attacked causes problems or is too destructive (removing creepers from this list is done at your own risk!). Entity names are not case sensitive. For mod entities, prefix with the mod ID (e.g. ebwizardry:wizard). config.ebwizardry.spell_hud_position.tooltip=The position of the spell HUD. +config.ebwizardry.spell_hud_skin.tooltip=Change the look of the spell HUD... config.ebwizardry.cast_command_name.tooltip=The name of the /cast command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /cast you would type /magic instead. config.ebwizardry.discoverspell_command_name.tooltip=The name of the /discoverspell command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /discoverspell you would type /magic instead. config.ebwizardry.ally_command_name.tooltip=The name of the /ally command. This is what you type directly after the /; for example if this was set to 'magic' then instead of typing /ally you would type /magic instead. diff --git a/src/main/resources/assets/ebwizardry/sounds.json b/src/main/resources/assets/ebwizardry/sounds.json index 649770ba..42258e4b 100644 --- a/src/main/resources/assets/ebwizardry/sounds.json +++ b/src/main/resources/assets/ebwizardry/sounds.json @@ -35,5 +35,7 @@ "sparkle": {"category": "player","sounds": [{"name": "ebwizardry:sparkle","stream": false}]}, "wind": {"category": "player","sounds": [{"name": "ebwizardry:wind","stream": false}]}, - "rumble": {"category": "player","sounds": [{"name": "ebwizardry:rumble","stream": false}]} + "rumble": {"category": "player","sounds": [{"name": "ebwizardry:rumble","stream": false}]}, + + "select": {"category": "player","sounds": [{"name": "ebwizardry:select","stream": false}]} } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/sounds/select.ogg b/src/main/resources/assets/ebwizardry/sounds/select.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cf9450ce8a1f85215e1564c1cae2e920968f192d GIT binary patch literal 9316 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

AAR*B9qwt{};Vu%D*0zSZ4d+_wy{~qQ|_| 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 a|A)nu{QkR8Ih%ojfx*+&&t;ucLK6T8vBRAJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.json new file mode 100644 index 00000000..b4173a15 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.json @@ -0,0 +1,33 @@ +{ + "name": "Default", + "description": "The default, oak wood look of the spell HUD.", + "width": 128, + "height": 50, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 42, + "y": 18 + }, + "spell_cascade_offset": { + "x": 2, + "y": 8 + }, + "cooldown_bar": { + "x": 42, + "y": 2, + "length": 79, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/default.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3109410f1a205414b597644fe21cacaccad794 GIT binary patch literal 20706 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 SDkla81_n=8KbLh*2~7YP%|)94 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.json new file mode 100644 index 00000000..e5273e4b --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.json @@ -0,0 +1,33 @@ +{ + "name": "Jungle", + "description": "For the most intrepid explorers!", + "width": 128, + "height": 37, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 42, + "y": 18 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 41, + "y": 2, + "length": 82, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..0015cb10545aae4f4dcb22d55e7fc18ec35f068e GIT binary patch literal 25335 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.json new file mode 100644 index 00000000..f63b60f3 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.json @@ -0,0 +1,33 @@ +{ + "name": "Minimal", + "description": "A modern, sleek, minimalist look.", + "width": 128, + "height": 36, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 39, + "y": 16 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 36, + "y": 1, + "length": 86, + "height": 2, + "mirror": { + "x": true, + "y": true + }, + "show_when_full": false + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/minimal.png new file mode 100644 index 0000000000000000000000000000000000000000..ba38076d05baa09bad612455b52b8e5be29f8dfe GIT binary patch literal 19824 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 D?6s(o literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.json new file mode 100644 index 00000000..cbee2a6f --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.json @@ -0,0 +1,33 @@ +{ + "name": "No Icon", + "description": "A variation on the default skin that doesn't show the spell icon.", + "width": 96, + "height": 37, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": -999, + "y": -999 + }, + "text_inset": { + "x": 10, + "y": 18 + }, + "spell_cascade_offset": { + "x": 2, + "y": 8 + }, + "cooldown_bar": { + "x": 10, + "y": 2, + "length": 79, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/no_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e8615b5457301c578d853a674d108cc7c6995d GIT binary patch literal 20184 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4mJh`hM1xiX$%YuY)RhkE)4%caKYZ?lNlHo zI14-?iy0XB4uUY_j)~cC85kJYOFVsD*&nep@tKM*;mteAz@Wh3>EaktaqG?A$~iIN zrSE^={XJ*auGQ&Vqmr{XJlU3Va~gY+$_ClAnJur~4>aykaj2Oq(DwZSbK{+uPjenH zyx$vhsQFF-=Xa(~W5MHPLOeIvq;qUE=cV49c6CyYr|#COpz_k|Hgh(A|NZ#NO1se5 zyR&vjz54sRCTi`v&9CRI+I;@k+pX8)m~Wfkl4|}ecm1pD&X1o~>=a~M&cd1Ck?=9; zw_Eh=pYeM(l;^zF_;0>&{+;(6#ol7#Xa49HF-b^xvdgi27MQcX!`<(FZQ4Kaoty?1 znOpXAGiu*v)xPZ?TXy!3ei841J5AioZWDO@yqOKQKR9$?+di>kVICev2_XXm1GNK- zn%|!>Hn7kInHO$z(0W@LN5k!RQpV*O6Mrx?eaXCIpTN0c?fTZae>JPBm&LDEWnL^RAra%i0up2|Q_bkUx#-%wJ%69&vAJEE z8k&^4`@y%_yH|TCcnGw~NVO-}9XM6ynD0Ml?%$QC?r&cE<=-Fauk{nN87|LD>1WB? zYj^B`$ET1YA{fnxMdAX>yN;!;S5i)ZNZwk`hcSssauOXW1V*BmAM{?#A1{ zqF%iH*pZN4zsl=Hv-X9YI#y?%^tR)_K5v#eId{vkgbhCw^7h!Qs=az4oY`ET|Lkt5 z8@GkcRW3+OPCWKU+BiWli$VJ~tM%{TH#cq_WZo^bOE>NOY3Bl~kFVLDr^)^KX&&9! zJ%ORB`Vo)cvNRi!`}J;%r!uV-jB38-aiHERV`{?pjT=6+#xn(J z=9mO&=d9g0Rc(oB;(vBu4{fI?!E5(63P?roY?<;ukM(BFxTEQ3+`6;zJKBKqwm{vA}V1lRjoQ|*~Qm>o%(q}CauX459L&>W?M2LBjSs!L0Pv0v-E=!NOT~vOsc3aZ?O*gLIIkGY2+GpJ< zh88PVJN5HEyZ_Ie)3JL7!!p^T%lro$4|8~DJ2^x+u=slHY}um3)xy$Z;-M+vlPj~nkkTxus7t3c5m{Qf2^%lpYuHu1ZRR0!tGyCt86|?Uvr4y zQes-5>+e#R+R9V6ZaRrYnqukpz#9K7P_`?_j2lPlK&kq^fb zr|(eB*vKNty=a@7jF5}-hNaw2lNGE@4b^bm# zUmMf=8@CLVWh;(fFsI0?0kMz9~f_L+}bQ%uA1=v zO#9=;Sk7q--c@f--Dj9Ry`6{CfBy*c*r+s~Xk_GdmX z%b^LqA!bg@AJi3BJo~x2@qfUStA`|K%)KfuEcB~Jy-oP+|D9Ltc*GbOuLOT?YO*vtQq6HK^me8aChG#o+p%`MvK8Uw@4gTQQ$+-=f1aYI#i=^Y+>; zYxYyf7hUk^$ILQ@z;KOwg_Yh*96ezk9A&mo4n!zt$IkxH7oi4KZnf(8k z&R6y6{I%~N&N4bP@TxSt{-R1+YYNPPk`U^TYZqA=oy8J=O z{^PyV-P0#@DK`FWmhD%_T777rmBQ(nb#Y7QOU&BQ!Y92;_XStxqiNGMR7|Fb?x(fhE!wL8f7I_=(E3!V<wlCne)w_y{pFxt3Zl2|De|J}3Mc8Uz&{yxc$@@SoK`FVW#UwQ6^#^w2!gLZLvZ~k;@Jx9Yt+xZuRv?l0X zy2SDF($06$ObJ;p#Bx2~?>c+8zFdmGK5yZKNh^Xye~8$_o;bc>%Mi%DW^2eeMRTh z3@4roVEFgz`)}KY)44J=>;BHp7bvg)<@uI#z4<@?e=n;xCTFv6ziWC-`Tu$6sEA!f zYt8F_g&#SWe{Xd&)1S8J`n^guyZ^o9(`|8z(7P0rQ+fY=r|tK;&3|T<_jZ@pEHnD| z)qVe(rC*M5z1;Ncmc4MZ{-25NDVMDM&p%rqddy$uPsG#RiJG^j)%&L$vs=>o^wO1| z{Yvxye0}*|Pqgd_JNLb^Rp$Rc?_@In^{b8Hl<1aRZ&Z|Ckk$r~pdB?YZcpdRjjZ`E zd_FAf_wM;Mn_s-`+?@M)?>((I*}T&pwb|FqUe5TZ{(I%2)SWrMTh=rF>Hc=oWy<~X zr}=d*40~$M|6jA_Td66-Y30_h*J}@6W|+5YtDpRn22S9#0fao<3mC2#0t)(|b0#b7ws&iemoZhehMfB*CM+LfK!$?^5jw8mY>^`?B>{8Z`3k%HT?$?9L$n^--%>@w$^{i|b) zIdO8cw(|>|asIyky*S%UZL!(}mE0mhzfZe=@8tOUF4*UN&A}{H}|fN<@~c|%ggK~%={nj#I`oCetuHM`u_3rr8V1rXC!bWgyphj{@=#H#1pfh`Aw(V!;+g-TFeJXa94QZb&@wnQy;Xb(8S-R-*no$K;h{#`L)_z{(pb<&cDy{w&ng}ERAXg*B{Ckq<9*Z?=Kby z3tYN;UkxNsYyVTKG^)AM?D^&Gf*HJQ2Tsg8AF$k1f+5&>yFdnS+B~)9&q9aZU$By9 zyu$VE`@N?EIlR|)C3T#M*siWp*S^3ZdxI8}#`fE*dRD&Ddg8}j^t9Ap;cs^3eCKe^ z4J)eVE8SSjzW;6b0@E2BTi$(&U;S&3>HMwJ7@F1|TytQ@Ui*6opUtlG*kF3&-tRIA zCZmWOECr9B25$Shb%T~=i0TdbUygI?YyPWvOuzqUy57FeWxe;M&d9fmid=hnEx}Q7 zWiGE+%-X+K=W#JkX|=r|wWeqdUuMWe&!4qHuU?hKIwr1Hn)WIC(A<4}qJREeP7%rB z4RaMMjcN|9{r73>w|_s5CFCDEb+-QRMg8E*vnL!B|JO0=Udz;v!tC~LzWGi@$?}Wt z%$`v5>H5l-z8Uihns;(4Xx!NT=g4OF_d7I=oi`XC->vmHDooBfO7G>xrKOw;N}mc` zD)Q_tJFmd-euk3mrC7mJ*F>E;{@0kYT-fwT!f98E+w?Gw1*Jy?oOUfazAIh8;eUVr zlj(NfWH&9oE1LLze?EIemv{cJhdfL-zCV`zbIElpd?$bAil>{ey!7R8D0(q1c;CLp zgFJVtYI~yB_nYq7*_Qb(F~Q*fgt$iE+^9lH2^}}48G1)9L`X0h&6@7W%)!ufHA0F# zn0sB}k?ai}oCygkv7Nik-tG{WXH(yLkx9&O)h{NN$#o5tsx7zk-SjHCkg{Qw&#qN+4!Jv*B}~7cTdVu!Tfjw; zCMWqbPv>P%UB7SJ!5W2#{`&&&l~fq^$A0O&+*n*Jx3>2Go9Cn9nvB|GIU_=_IScYkN8FT@|QO zJor1nTg*=I%H<<}zJ1_M{MUPaIU~!4333flYn39_TKp*Z?G&gjpkBP^-p0?he@@Oh zuO2LKx6*Ehbt=b!3xbh z;%5qRZ@Zc&$a>f<`}oy$_lkSh%8J{>_1mOHzvc0h+m|M==YR9$T}AJubsLt+E&0ee z!{Y$kgKMvo8ET$ij5%!IKHoLtS^Yl+@u0|z%S(3{ey>q{!*XVtT24V9r^1Ru=0bHm zO*f~_iq~1fdf-QulmkOu@rBk6LXtXh6^-%7{>(0CiqOzn5XssjmSFIIL-yVey)_)Y z!W#^iO+Tpgol!?c;^F-I%h`$<4V$knF|ar;b-?MDftqZ^zl{MV4wskiaFjaWq{*3j zsZrcKY#aAx?kgO;2@5Um`dEEUX_7z^y5ABc7w@?|u%>2ggn?HWq62vHGynpZ(kW?@lxRPkp=S zq01HxPK6%|Kbp+%zdW!{D&tb)`L#1cXY;+;e=UP)$JbvsdTJOJbDnADKOk;lUweHC zbNq}My0SaAAFp0}F|vYtsm|X;$_)S8?61Y|W}34`t4vEPI`5q50e=po$#vg8M%4fP z{XUzC+wtqX)jE3*?reF=g51x2Y(dCwIy88j+%OK+aK^!xVq?2`us4n`_52y-Mc+%t=@&DGJEQ=FN*wW(&& z#;?b&-hTV>vBR?U6W0keDmHF@z#MT?Pwa@SnA#^hu5 z;if;kS;UY{A zK5~R=e?0duL^Wfv*c5-eISj70;h%rpXO%T+T zIXNf&cHH$snarIWD+PiSmpXY&Z|_^j`XE;N*TiYvQ@C_mMfB`zUV1Uyt3Dgd;jO4U zefRttV+Q$()8{8%a`o6=8IKCAK4jd{&B~z+oPt_x@y{`-HQwrk(I&b(X5 zX6JoF|9y_NOf%l=t=;GQ%AIN63CL}Du}Q(x`(yt3nA5+v*~h8z=l_|@zkjXKzwP(_I=3vjQ0LSB|0!{;$NyhX|0kh&_tf*h zkDl*4CBFaT%S{iep8q`bzJ9gQzw_^Zc%Y%n;m!d^zk^Ek72)8SJywA*cf2*`4=CLLMtQZ%>+_ zxQ{g`U!OZ5Rk}Lve z{(a(nFuVSj?7ZKz`9JSHyl_{1l3r4T4u?>xfd7~M!iw*W{dYOmsweDyyYRhjph^yR z&dQBTR4k{aKW^jm+NtCl=y+qAi<6M1=6|s-CC4wQPTw{y>|Q~s{@?X}iXnX&5dlRk zt&^0*rrnskw#R=-#fJFJJCDyxM={>S&{)wAm70Q3uiiH?_ z@=yQdh!ohwn&_P{)iWWZplfZoPI|@zi`chkZ)`g-Eg`xoXrn`Ux^QdCyio1kFK_Q? zYyRt>_)YL8mBCj<<-(!g^%ovqzb(9;>%VPe`_#aEULL>63|ZTs{(EQN z)uP+alEa;&+2P7EaRS5gBhz$Od-nMYZBi85#&KI<)1x(!7d^{tPVNeoEjeZtv2)Gb zgN%+Rnrbd8rDVIr33lDuamr0y_M1P4S=p*Ce}+qMB(>&FOJIL2`A6jXEs6GUzCPY*~;hpX@0EyP3;gWL(>}GxS#bet+B9 zAFgv9P5%4yRQAFD*M<9b-mBi%Z-23xm*}*qUZdc=oZpyu$ueQW=+v5#6H-&}d?)LU%9tmPdD7Q|sQox17Db{Qbh+i)Sv&=vdaVL{n+w5(h5B!<-oj2?qUs2X2Wc zoi&{Hz2xH6Yc4Kgg`Xyi7)dU3>)Z5hQmM&Jsi5O8_N)-UxS6x+nn3Rsp{e4|Uu+Kq z8yNb8M|b#|-*Nd>VShcQR#X4IrJI(u*TM%!`C4)v_nGYF4#@v~{=k6;GQtkIm-=DD1-`8e&ghFqmgx>4g<>4ksSI;8*P5qtO1WP0p& z*;_hQxAdPqea^RF4%4;}j+LElDvHrUd>8x;L~gG5&&KxIg<-39-pYuCiWd?)r}%n& z->_;WtYNy=*YfcB{f8bluYW9Z zsU_F(#x{*xT&s`$Fxa-g(UF;BftgUi>!OOjYdrlun~I-X{Epvxvn0^m`rf{|&&=1b z9&#`@*;_yDa$4i{2RAH)Up_8bw`;~cU2l){O+9k{6J~gAu6be6yjZjC8{dpb1A~ku z{0b7B8Mh}*czg5ZwzsW6+jLJpIU>S;@4v$8d9_oP$|hE=uQC2oD-#j@e9K&imP-#_ zryO4{VQF`&;!>j0Qi+)*9#3Q1+%Bsa@#!9WVs4P3!^kqxb17%}k%^a_6a<_WY;nkT z;FxkLV`;%!?+so04i#^8me*M?l)iV;)LiD-tT)1YzD#zncp|Q^>@q9HEc}`o%M{K7 z{w$w_s(U085)AZN0;IXtu%sAE-kNpWrtx}HMfDWXZ0inpr~-bXzx`k2 z-Rgr~41y1YGNO)7^9{ea^-EBkw8Zn7;@>_TI=$X-rtJKO>;`iid3l~qWXPJ^FpuA1 zl2_`6Ew0|h+BbVnzsL|%&)WE}tM|ygKZ$#$`Pj4XYS2FQUXDGE^)+vb{7;_4n%yZE zlRj)^)`{IZQS`O`AwKUU-$JvT9WyGbCmmjI6a2KGh43tnnHP<2}S z`o`Z6d!NX7?nyUwZ*%|gz5cglzx_uY_x9tO7GizeD?chmEmmW?aA1KV%Z5F7)pGoW z56nvxk6iaH*?aws?Vm)+uOesKy-j%4fa-TZLV*C*b5?EJFNUtExAc3x}}$+tG};51XWAG|!z zq>Y^#rwV1f{cFKBZGGnQfRf553-9vyt4R1Rv9z1FsPd}llR0V+{2o|Lc=F<+%KwiS z_FkwoRX+bVJ?o9=wftIP_x>KknOd7(|77-2*%VWg$sg;T6t~iVnYsDcPlhys2Db3V z4Js3#2~>ag5$KQHazv$bNptX(n7YfiE1vG0p7Anc;g3fm5BKTptX*GJvZW*F!x3lu z1)BE`F1&tBV&09@ZQAP}sM}Zdgq%|q;r;w;qDa||Ma7;HL2AKg4=hNOa!?hCs4o1e zDn3Q*$>*+*k6nvgeJ{Q4xd>Yeuy4spG1HS z8*P1K-$k>{NeKq=QVyx&3w#*%u|23*`sJi`f~X18*BE zH#hAMT}*afGD)v*wWLga?}gRPCF@@#e!n;Uq?oAwTe~y6_C2-v{6#S4ZIFhh%yplJ zMn`8;hV^{+OQhDVR#CmK%y3=QVx3y_hfhB?s-CyAb|_9a-aXI$%*KsM&4+_~e5YE} zm>mD8+5T~gx6)IAtgcDrT`I+TFXtpZcp>7>zC2>@y5>oX3#TlQ`0#zEjzjZjPH`{q zs+X(p+ubV*lym2d2@fbRUB}#a=}X*|Q^Ni{lTK!@={S0!K(Jjve_u^Q<3Ucf%UvOU z6VGY79lN}zE@R5_`Bo=hef6GsYR8lAS<3E{R3@`d)5%`+B%`kK?-tI4O$@x})MGRX zwJ%R>XnZ6i+^I5Gb}fgZ2G_y1Qt!e!9JzA?y;?c>_RLdB**c-v(y%sm5GW zOHS~rMef=&^Kkp69b8>~YQ|xY-b#1b6kmAFlaf$i$N9fiWNX%MUdvh~i)jTG(;Cdz zZD(u`?~AsO`gHVUks`mN)>M^njfv%-d{j11kzsh7DJUf(wN^2{q+qJ^bD@Bs3Hm$s zd{t^c=y}$dy?0f9!M{gNA0y9Z@I~ETSiUdsS?e?A6>D!v>+E^;JNA##ikFApJoZb? zdAs9g)Rx~K(%f&>DBO5-FF#xSPxZoWvG?~~oEIr{rsDDWf6am2QNKT?9G`p6GJW>> zgPy+e{WD*0Zp}RCf1RT)?;zLzzO}M(@eMb_{wM6r`_FxC+J|o&*RE%s@$UWe|FSg} z&sY7aUig;bN>*5}%ihYb^0!1g16wX|tgJA4e)eXm>~U?`Nq^TJciLrBQliW7{?>*5 zEivnhH!huU=xMutEa!ph^_8nGCH{P;zSr*zsF$_(-0`~QY2Jul)}Cq4rkyT-|3`sg z|M!K~TDo^!f7agr^X)jpk1xyj1-{(yXY2kCR)+QexZ~%&+m%xpyI}vPR(-~T+x5R= zp4!xZdbytY!_)j)nas+$^Zvg7`IG;@E<^n8&*rP5_H-A8zeMk1t-KyB9I;__-2?_R zeSTkIhky%z^+Rs!+1%K+3)}uTv0TvDd`kS^&1a?-^{Xd2 zKP`Kvcc{oxB<{FtmA%LG_V)0P-$L7$v0e(YDOj-n)4lI8+fHY1jT5_7U;QlV-uAyA zjVdc1zpwd`JN4uKukYlQbYgd2yZ`U?@1N)8cWhpj`)m9EcZa8bod4(V{&hm9*4IA{ zu6f44FRJeB?ql=opK?$A`2VYSeb1D}j%oU&ZRbSNGa~KH;D-ud=p% zyFw1m{#j(z_5TiD$D_}lmO8Qb|GTx{-v2!?UF-VZ-}3)N8u;)1a=$F)@bgdo|NHwN zW=hQe9WgV*fQ)%@;3vCU}Sla+t+!YRkysZ0F-GDk1>ar(?tbeU~ zUbL;!cIMPqPMu}e!dLWa96x`rQD<0jlI_d>oZMzU{{_OutKPW1NVjTj+V-%EZ+1Ih z3+L^G>Cx-dmw(E+bHPzFe2JzO$L&cT9!jcD?>EhRC$a0vrE8Z?Nw0gi^#4`OmQ#Yf z++KYP0)mbl6573a>c>tI{%_g$E~;D1th5z8$6op^XTh`=f8N*rK6}@gqom-|A6|x4 zv42-{90-5iZ2Gfl^&Y_w!R{MweL7Wku#u%D$MJ?xM5>U4)SRT(qNgRLEd0W&jkoD; zP`xp2L5R+UyEk1FXQp30mG{eR-NS_c!4X#8-jjV#2DWrHIdM7&b8>E(@sfMR-0Me` zZfxePT>CS4_o@4J#pPEe{{LtVTVE6%f4W2^VXbd|%fBYHXpfXT_OCt|zW_ z>`@ZgS~#`W&&uYLRm}?Z9n2G+S@%B^+d6^0d{NWmS2I1Cm0xyoimP1U)?~VHf9dKh zo=wTw?Vcwry;p>8T`JI$<7o2c=KqTu7FcFolo8#*I{n?cFsG$DxgR;Um27Nv@_3Qc zzd5m#{e9*8QkPv;FRB!Ms_&@H480Mg+?w?DR@t&3RU^&mYv#HwPOs^^75dgG=;rI2 zuMZk--5usw^zFU>TdnuP%k!b2h@`DbNrO@4LKRe4+K z`77_%t9t#fz9H@vcG<}}S7Tjxf@qgz`;xGny-Aw8o=oyx@*<1-;zhBvM<=x5JwC%@ z$J{%%AC26-OuS=)eHoAW`~{nj9^1rnec#)xx?hLWPdqW5I6);R+exu8`Z#~#!kZg< zd)9tR+wE1tZtkh7}#_RdGY&icq$b-lIF zc^&JNm7;&v`*%ltC1&swej^r`J}k5qR}kv%sWH|U<2UUK!x{8!)Z|7R(szy!UtL}C2meBL%yDuv|C|}ndnkn=AQ{22g6T;aa zUS0QTpZ)r4_Cc#zZ>4>;H(wE}xI`erNr3nEnuuEmZ-q|ZnC5Ez)>q++ir2Hw?J;g2 zPdv7m%$akK<8A)Y>@8dg59R!eZjJ>zgcwuT<;Uj){+McH@{8EiIZD(iRty*lpET&TLu3W=jby{ z>0)hb@0;j-v!#T8b=9qmOy13DrPd2Wr#qh3S|IyFCq^`keEUJ{+Q zr&si{TzRVHnQ`{R2@UJ=zRmwbXZwnmZhrjsc4pn-C8*dC))Wv zU)BBc=BAbswbL&?vUILAIo;l8Y%zh%b(#D$!UZ*>cE z)^6D1#?j9*>+xBJB}S4lYi+{>q&m~tT3A|Ik6qJ?@(PQZ!1S(0>HPCL-8jL2#*sgp zZxy`Ror z_+FThJJ-03Nzki#{bbqsNl$)gJoaqwoRXAsNpWhiq?GUE6BcXss?<2%yS(7M*AM&D zhuayw8`dsZt=hL#bX!;pqj&Z3mZAwx7i9V;o_ylaq-q-IEihF|+O@x7`>n3pQ%T{) z!pDOm&u?rGoF9eAbd^keT= z|5x|8!&o{PraN5L+Lp7cYu(c6pKcwnIKO8@yLen(@5whmdf2}?bufM?e*c&KM){ja zrW{^HO^$3|7iZyFD_Ul>Z3sHjkYRaTNrzSOWzu%n3we!doQ5lBmaxornpOVjlkjz= zm8{KP0ZdxCI;{*}B72!D4(}59|0ly*EKz2Y2A72hgLv!F&wpfGXIQ-5qJ1zZ+tl5Q zJwr6sr8UXPdsfFnNmc(oPPdL7hKm->3@=;nCiLj-b@?^BCns_w%$tLMKtm{qqyY_~ zIeXJXV`EoHHSGU&`;hRz4cAP#GbUc>THxxDv{b0j`$7_@l9)@buZ2oSTY|TEi<)Cu zR$F_buf#ju$UW;++o!6uE?6;RVoK?@4T}yx``y3o(IjTBmJJ$@f)ZBw6iw1FOmZna zv0=Kc%sF0R*9%GIn-ur8stbLe%*yrUf=`P{`$Y%8sc1bbxX&0&5WgYo8-86C121oeXH0JIV;1XAo9f1tt(P|ajdTGm^uGr zj-H56yV$LQfF~Xc16w*4Ty)7i<`ksVeQ0U7=#&d76M3fc71tC^NWGSI?22L1E!T^E zt!@DdXDys6s#O%zzCFBs?RpZ&gP4V8A`y>GV|91VatfSyR&$zecJkY2rEmTmz5FJ3 z>XswUEur(gZ_6)!{mP!TkBQ%S%jdc(JuQW~k2kEE-g~>gcmCbq=LKdaJ*ntAz5Z?T z`FV_ScWhlgWi-_UUf!)5GV@8R&Y$hf^F{TUwLX+RdqG7}^MR7L@T7n(rW4C{)U0hP^hi6<<-CUDecY-amz~WtSt4~ce%&@V zm48v9#Q6FxL(Tt-9Ba229AWS^+1$h%;h`eN?{1slRbi3}( zTX^-I)4~}#y%!dFrF2YQ>d|JRy4}UvyI{kQkBg&!+&J5=b-wi?!!toI&Mn{SWLQsM z-x92`%jVOCylJKG8aoBKSZDW6k99tm$@GrpSA&XsznW#mhq!J3Z~Z@bqS)VPs{f|C z*Rw0WEa#tGsIvIHyu#e#9X~F~@yX44a^m6}$@Rw;xe0vL(cZ$>vovkbjK?)+ivIn7 zt-6Rfb`a;**tqPnL05P7>)V+od_d*;7Bj%i!&Y@17n~ z7w4!mX_Uu`O;foflk|QbCtKeV4H47MC5KN$%rlK%|8#0>^@+4LjeR?$Kj}}ny|;bw zV%N4~pKU%~;I}Y)x}p5M#P0dkvv|Yf4t_YH(#|fV63iM`nc9=&d2y#o&8a<^x{wyFZ;T`?pg-Cq=8(;lWhD&5dc^n^aid=U(2EKQ-+**Ns~X zGb7n9E|t2*JiY0i7zg8`v)2CMGF+JwXAXb1Jos_a_Fuc7>V?-mDF|pdf6cGK?Qy`8 zsi_ey6C;jXG`ZN-diLA2_=7=bOCnF-Oo;akIUb>S{jw`Rr(5Ag6>rYIC%-QqTI8+I z&LX&LLxz%%$WmDmE^P;ff8_=&1$_alm8Qj-Ww6i-`67TSqG{CE7eSFq^tC!QH~d;^2pf#`%9<1e(R(bYHi? z(rnJsh$}w6Qzhi|!rr>g@yXqPn_26}+ftVA+YT7M`tyus{roef`PQz-SBWrbwmxUq zVE=eT=U`T}uphH(LH?A8`OJmRB40bTFJwg`TmNnCoFldY;~KWLeL==-f5g2|RaH%vG^xtlg@xGAx7lIpcAzU99=1r*ms2Sf=6 z3FZi@dTD#VSUUgtgc};(AH8$)9g`ZT9N}arUPS=CT#iba}R4TF1LKPZTGQNyWTOVO!oBe&{;j_f%1iI4-#*yUDke> zd|(&v3SIL>_8;djs1}i%+i>`vsgsZs^M^-)5@!#(FdBIU1U$Iw~bm3V157Ymw=g>^Sf-3(0LOd1ztKQ;@qm(C&HH?oLrnCJ$p_3Aw_@o(;3UV zr_6r%^~wO_nyPk7h+Q)v=+Poguig$uMSxRW9d&ReYIwIVh@<~cN z$23f2z>s2foDMW;_k~oYOBvyKC}AYX}`h2<6wxEuhG<_SDTu|{%m`^ zA>GL3Tf5mJ3pV$n4e0{57F`wB4(d7;v!n>NeKLre(lcFQxvHvefys)ZT!y!kgBw`b z+%7E_jTg*0@o@1`A(K|87|FeTs~4FsXgMq*++*O;qOrDQ(-c#gM0@s%iG|BfSgQ6J zpI}km(|SLJSGr>EVUdu&DYKLoE%tEI_%x+JfWzvDkdsT=jFr;_FBdnjczd*Os~hXe zqDwdaEtGla!Q#!aMIh(S4iUv!0!D2?m6v7;b*NeGy7ltD`GE%)G=4UDCutoHS>>>9 zf#p1nMN1EG-R9{}DHNR&b2jCY<3hn{DW8MhC(b=3lG)u}S#iFzoK1Pau510Sz`eXBL{DF<;5$3XC$)>mFDt0h z!r;-IX&-(^MQZV{?0l-A@I2+jj>#gSeJygTE;E!=AL*oWW=EW#s&ev^6no`7c8v+z z$9X({NhX+TGrr)CKPXskFYJ@BSYzUH=d$A58g@`k-s*u*~Lkghw|yN8+Up12({ z3EaR{(pGgs)cZz;(v}IzuI+aZFFX^+Wfi=YJE4Z*xqz`Unq=ZX?KAMiJ z_I!FSAR;Kz*qL(5n6c%A0*%vWla+{fe0@SNkI z$APJDn{sQfvMS`g<@~khufbWh|93CwHoWNk`!w5W-u7&<=Z{-i;<;C3Fr+^G!n$?A z-X^(AUsqL3iIF&;%{NWBp{4El6ouy;MqEZ-lP(50OmdwteUeg>i&nGp0mdmGCiQ)l z6l%C1yZRbW$CF1n8GCz{7yox`WK!t3=-DF{wu!0r^bEO_87CvZ2k0Eyq2c6GIrVvA z!OSNHg;6gihYN@4u6S9Zwwc>Nenl_yjtP^Co}FGYEAZN>_=Q`Ki7K?Z24-(!+Ok?B zb4F0pj04IHTei!tW_8uo$aHj^5?-sRsW8JMU4tuM-Qnk}{nyu)p8IJVo56dsW|mMF z&*USShZoJ{yXoD2wXaO}Rw=)))xmj@91e>ky~H`=*u6ZubP{z}uPIe|W5~9d{i4&u zEYoE5!vY6velTV&K9+TRBfEF`^=-o6)wLqNuPvLta9e1#fVdNH!!45s3pf=RmWpsS z3eD3C4d9w!;WhbcTwlXd2exk#F)Hf>ESw%FXeiF`NY$9ydY_l0el2H#S$9*~%qLe5 zd5dTWsT~uVCMbCJOVn%46NW)rt`Vl6jlN$#tmS6&J?{aJu1>OSdxaFYW2ed7l8r8U z3xn4tM94TWth;8>A;~>Sv7vH9Y%`P9+Xdd|Bkum$mFuX;Z?*qf*6Z4Z-+%9ZyUs9g zuU%NI;EFd4Us|tRyj47X%IR9`sD})!rgKf6WPVxn=uWWH1Fn-UMxm;I^qAgq@1GKy z{r+VOBfD^86H5}O^wNWiJSJ(XNi6qtuh{#=biQp6Fw1z^abIMuaKkv!?IJbDG*86So zyLOk||MzY7ZtbHsS*% zj??%4IT<1~ebe6fkN>8(#&>jm_&+^9cjiL}>zj)fY&Lzdp;Y+vqP;4`?3#->rW^mC z&9T`f=19a#0ZqP(-ul&=LT($|o@(T!G$r0UTKyuOKk?SiId5gesyQOXyq_4kS)4I` zblie9zdB-JfJ*w0l{}1RHuFlaIrnPyw&K!vu|0EZnh)8Bhf6o47`bL=cVEA7xP0Zb z*T17HtkuOHbiHiTWO6i`x@t$f_Pu`%VGCMUWJv^R|5?78m#y50<=(qKHzB7*8$1j< z7d121HW=`oewjEW@LCaPdqwMA8@D-fUKw(a)7NmWO_LR0=q2X8M($GCqz$63*0X}v zIfSL0n6SK|TOoN)L+_V3cIlEc(-ssPby|yedDX9S3ie)bT!?RbjQr#3{$*NE53*di zckR_oHm4A$SmBc?p*L3R&1RY!+fwvH-!yCggh}=_<;9^nM`v1;G+RrmPE0%^>7c~H zEa~Oau~@Sx^D^&~uERXL+9yVoyp;R)NrbiUvX?qjhvH2I^GO$kEf#sqGx0S#RM0k5yrvm#nye>NH5O`NA$7*G|)sExW8ETvaOtb3O9+;n}Rq%H%4?}Nvvzy^b4)Kjm z;+y-0Cvq)G=#2C7v@Y4yRLJ&n0eicUW|55Mo8&W6%6iI6T)193ES$02VV;ibrzsxB zF2;egGFkh=?fh+ux)xq%Q{NVxZF_C6?MF%e{r}73`xn$N`IY$U^~`yb5KFHe(=*?m zk~U#{W_`=>MyPpg!|`AK`wTtyW;rxZp4D8veS%I?QkPKXr6m#G@{vkgxVlZl7(7oadn#Zyt>iRQ#q5$;x(2ag1V z674?z%ek6vz)~Q_Vqf9>+IGvo?5#|J+9qH7u3MLZ)^>d?kGU75nzMCv#^S8e{I6oiRVmS z-r#F&=DS5;u?r)&w1%KkORH~_V3$ZlZtjEab#F7K#vc_pAZfLti9hqgLE$fd*pv73 z`o*0{6aIGV)3vSN_s{E!)8F?f<=8p1cPX3;;-oj+dY*QFb#$ROpQK^Wr7jiDsFyCn z%X+8gY%?po@=D!Ly01*4lx@a^WS_!0Wz!x#5K?jyHk9d_qA^XI;is*}0@soc6TkO{ zWCp2;{NQ1+muLxoE%{FVqVcW5^V^u_tuMH`Ghf4as`XaGgLymDt*)Q!o11-S<%++> zZ&P+GHR;Px)VqChh32f%IVQm-7o9%+&wu|W>G6(r*8i-(pVKMV3{p{c-DI~WVj8RJ zDra+#u0x({lvWB`I|Uyp?N)KPXtp-!N@Kj#j@k@GMT6VZl``UQEpUt8k|!smoO#Qo z*Lis%6L)6Qp|aJt8gou>N?AS0)oa?cCw0Z;?_M50qmw?}`_?4QAeHz06Ex1noD(ho z{^z~r^Ew&5Vx_8iyh)N9l;6C#f7m)J+Ty*R@x?dGkBBh%W}PYMl(8&2*?CA>V##?i z4o=RdbG`fPR38YXuiyQ=gU-`9q2j9vdlto>b9biUc-!tagY6876>2c-lm zxZ5`!y{O{f%oS`QUa;&dQ|0XC_tpfLn{M0CEm+3nHCKu6w1D#$;{&2I7q~VQJNYv4 z{e87^p0Q*cL)d}VSl_n&GZwD@KC`Daesimq_Klezcm6(q=5%oCVgC8dJN#;r zO!lujRkWP*?3Jfy>vmM9zW(cT?ADBvAD9Z}T9hm}a9@7)TB*bK){)PSw5HwuusdCM zo$BoUH*D=EZ~P>ewUhDF!M%<8{B?7AUc1Tvz1;Gwll$zq74Orvr>XPo2~0C;iul+a z$1-h(^e&n3G_~Yi*RrJRtTu0)GBy9YF>`JAdZ{;h^4IqsSNLtGbM0N$t#j4+{IVK4 zGhTkJu*sI*U8?awc{~5bjB}sr!{^ky+RXc^!ce`PE#u0QzuPMXKU7?kPBT3pT5U5= zm4nf%bdUIhk89ld6Et7XskE6Fs>ZNk%TYdCx$|0FjNfv?mT7N(bIa;N99z|AwZms; z_wcjY%ro_yurAEXI`ZAdod@*=K2==X!m#9jN4QSuyXbT4gxZ&}md|Z{Dst&P#*$||o0vYPJ-WcH&m(u9i^Cyn&g0|VT#Y63Qm}XJs_X70EniU~_@QE&xMj(L1(|>B>-L=Zm;1154X@wt?@A9o z>MUlzP@8dZYnW}N^^d6_Gm=MJKQtXIo;%@)KK7#3Y9Nc;1!`$xItA)88qcSe4 z@HMNb&I}a49#zaY`AU8`!}A*!76^Ad6k9;XQzW?8vExq>{ zj#)B^EbeoddO&lb*3K{dUMuuXo#b90^Lg?9jj#XV`~HRSE%p8PCs?9h57<0gB}QpanBfsKX3g04_k6){Hbjmm+mLOM(W zSq&wWC6YOgP7qcU2uL=#s-^m1im=_E;@Xn$@6(xV=B0jP*c9r`qf)p}h#^d&U_)jB z!|FZMtE3ybUf zk8f^LY;dsI#2hwN-~{KFg)MqYA?|VA(;5YO8uw^0H-5UXtixR|I#0;4 zF}nA$>hdjnp1=Qi$AYQg`98;E{o<7mzs`wxw8K7tqjy5^QvZeWs`(2ROepSSnqV#v zp_txs!G*=SHsi{I`wj;+f^{F-F8oxeG_OO)SZhwXlkkaoW)r@>zgyp*&T7jrS@JLQ z#Ij}e%?B1V_Hr~QX_(CBiAcP_RV((XaT0fH4afHUrUI@r)>Aq;E5iBqUEVS$>~QwE z0H+zH3+n#%A1{8)+2Gk@@3ZWOnMC3Vt^0am)-vDM-(6xP<8)B#XFx^1#7D1tAJz$| zwA9FLd)xYczTiFsk&iz)Pp7s>Ie9A`%pPp05^!HKS)C&i47JT77{6d#c@30T+8wQcIhY!S#Pmkl(Pz(v35!$P3 zm3(mKzvr!tneEB3|9`eOD*v_&!MFO3s-KIznJ`7L@Xdx(Yim!@4HsVsA(g6`|ac3u6*+X{vNs(aL$D1{_HG`0|qBVUL3r* zXUX6HcQ?*Tb1V1kiDz|rUgB_R|CZCj5oZ=pF#o9ZMeBC8O?KlquLJL_o?hc%+;C9J zti9m=grGkHM$>wZ9RA<@Z2J*4qcV}Jt%3wzRrf3<(L4M$eM!U1y4>D{9yQ`9^bc};qTAK#orR@auY90%<2$%@a|=m z`(pdDjrTWbOa6Rcvu@p=W7erP`3jwh+gqO`UQmu@{&pk!kLqzT4#lcidnTE<2mcR8&~# zkNzxJZ+q#%O4(YO-*t;~+v|TFkzLgPpXc}Hj*aTcw|^e~dm?_W1G~Aj=H7>2j`l9x zQ@w1ZKhKwwwolvYYAXWlj6*N&-=Y-X6H;$AYr6IP)yLz%^BywS%S^kH+s@?fAouPH zljWusy`K~1&Yz5X{qA%%%REz62F*-~f@dY(zZ%bql|4(m&v0j>?fK=uUO)N9B;I)5 z`SFy6Kb_q-b1heY;3RqOT5GZI;S?30l?J^F({w_4rhBDIIi&FTw(S1a{^iyE^&DR+ z*4f9lIx5({EuXV!p8efPQUyCXpJxT^h>t9P)#3lav zP|E27OQBO*R}4*#UT`W2} zbN|ENnhNSAK0aw_Xtwozn&P?Ripa94LtBKsv_cH82&4(7HEJ6#{jo)1Vuiee8$;FC z_a7^!U1ffu!?Ebvr3*hC_=S%yuP{;G5fgq+MY_S|VWj$%D5s;2Mg z67d#|V$wa($*@sC=i2_`k0aF>U+8fNRWmdRo?fFB%GfL8+nT8^(h|WCFvn@hp*38- zqEeH3ejU5uup?-lfwq8ZVuSM|+ryHKFRns#TUbj<$IWV~{uras*dW}|&{o{A@adFQ z$EsP@Fi)Pjw%fo(X^TsSqKV+TDOx7NkNb^|-Irx5`TqWKegE@c$yTu+Dirw+>@MGS zWu`^tb)kisJiN&(6IUe6C_A)8D(y+j#KFE>r%X?eK{^wSgHVSA|d*x?McznEjk5Qz+wfENL3-x0@6#o?v4}bgfmd<2@ zAFEE!+pft_ys;u(?H_YBbL*=`ZTsBgj!3je96x#UHscNZA38}&M|OSN`+x2q1BUna zzp5lDyU6&@-zVN+egE^@9cz09gzIZx%{ixU%;=!Km?z_9EedFG1w$k9v@6XDcg#Io+^q}>?<;%IgtC^Q8 zI#lT$xOwu1u*d#oZ|3ZrAW_nCqa(a{_szxn&7D6k9`Sp3@2A$WUE3b^&%bs3-%bC0 z-z##y97|mDIDY;=*LVLP^b0@ky>0((aeUtP|7V-s1y{e__wQx&{&VkZe{KA6v(v%m z)A{{(^Zq}O|D&ta$G-my1H8Fcd}n@dJI8xs@4MLS-~GLO=ZtS$i4a!oa5W6B ztyKNx-}>l;x!zCz{po%T&)oi7Zeq3GCa$lvsH5=D60!OX@1!ah+eR%{-Y}y>e$H;z zhU&a(&Sd4D!US12r9Qj=b`0-+AE@8z{yYDl$~P{%zZ2z;9h+Chd+p=Z_y4#U_7~sZ zf8Wlgn0$cWfciQmpN4-?<^VxfnwsbHsFfe$!`njxgN@xNA1}9Ft literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.json new file mode 100644 index 00000000..634b5f72 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.json @@ -0,0 +1,33 @@ +{ + "name": "Redwood", + "description": "A variation on the default skin with red-coloured wood and a purple-pink cooldown bar.", + "width": 128, + "height": 50, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 42, + "y": 18 + }, + "spell_cascade_offset": { + "x": 2, + "y": 8 + }, + "cooldown_bar": { + "x": 42, + "y": 2, + "length": 79, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/redwood.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9316245bc36d829df8892d6e690824a7a01b75 GIT binary patch literal 28010 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 F2>?gH#T5Vm literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.json new file mode 100644 index 00000000..513d7068 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.json @@ -0,0 +1,33 @@ +{ + "name": "Sandstone", + "description": "Explore ancient ruins with this desert-themed skin!", + "width": 128, + "height": 37, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 42, + "y": 18 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 41, + "y": 2, + "length": 82, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/sandstone.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b23c4175087d0452e2e9fa01124ac0b3c38d6d GIT binary patch literal 24369 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.json new file mode 100644 index 00000000..83c64dbf --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.json @@ -0,0 +1,33 @@ +{ + "name": "Silverwood", + "description": "A variation on the default skin with silver-coloured wood and a blue cooldown bar.", + "width": 128, + "height": 50, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 42, + "y": 18 + }, + "spell_cascade_offset": { + "x": 2, + "y": 8 + }, + "cooldown_bar": { + "x": 42, + "y": 2, + "length": 79, + "height": 3, + "mirror": { + "x": false, + "y": true + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/silverwood.png new file mode 100644 index 0000000000000000000000000000000000000000..e097a57e3f4fe4838c8569591c8cb1d4e3f591b5 GIT binary patch literal 27885 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 KT-G@yGywqQi!A{F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.json new file mode 100644 index 00000000..2ffc29c6 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.json @@ -0,0 +1,33 @@ +{ + "name": "Skyrim-style", + "description": "A HUD skin in the styling of The Elder Scrolls V, for that Skyrim feel!", + "width": 128, + "height": 38, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 3, + "y": 3 + }, + "text_inset": { + "x": 42, + "y": 19 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 44, + "y": 2, + "length": 79, + "height": 3, + "mirror": { + "x": true, + "y": false + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/skyrim_style.png new file mode 100644 index 0000000000000000000000000000000000000000..846f69cf746729dca1c307d18ce87a7f0218eafc GIT binary patch literal 20676 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éh8@7G8 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≻w`&n?IKJ5Nq_uMF^%KFlZy~ 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.json new file mode 100644 index 00000000..eef32610 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.json @@ -0,0 +1,33 @@ +{ + "name": "Spell book", + "description": "Knowledge is power, or so they say.", + "width": 128, + "height": 38, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 41, + "y": 20 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 41, + "y": 3, + "length": 79, + "height": 3, + "mirror": { + "x": true, + "y": true + }, + "show_when_full": false + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/spell_book.png new file mode 100644 index 0000000000000000000000000000000000000000..50feb347ba243ec080f99e5158826e1de4171a31 GIT binary patch literal 23686 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4mJh`hM1xiX$%YuY)RhkE)4%caKYZ?lNlHo zI14-?iy0XB4uUY_j)~cC85kJYOFVsD*&nepaT^GlUHTiuz@Wh3>EaktaqG?A>YAAF z((ixo{+?qjo~hESa{80&wD;5I{t(MCKcdL_#OaXg62>4Vet`uG1-#-bb}q^H_Ev1& zbKY4~RoCQ#Q$~~*hvxznMb0BCelo{dtX0ZnZg;)k^zK?|n#tmwbN0@+KR4%MhRG!T zjY~I{*3Ca(V`7y)zxLdmt=IF{@BMbGx^wGhrdgWDcI(SNdmhcqu;-4Y&WD0iJJx7A zoZ#<&FJ-s%warie{28H)-M@^Iz2uX=-($GHC$+(SyBUM+t!$Rb?Ee2Q&tbS%c=(WJ zeTS_7wh#IJEk8HEj%Hjh=%Z%y)4!N0VrQA{=Jc~FHp%~%+^<>iT*Ke)qr~g=nKD;7 z%;Y&LCRw_+{8?T;SN;D>-b$m^Z}0B?+m&w;C~IE(!R%W6WsU>;ZH1oQoz7Q1$2!xA4B$ zyzI}sKg%^4-`w3hcYFPpdB!)^zIn7!e&J{7gQvE>F1~+0M0s}KjwLIba?f5gUI$Y9 zQsBWE?)wLC+gJ4$oIUuV=jWP;or>Q-e)#3Npk(U($^R{#8PdIf9F=NpH*TJ`PC_?! zsQkZt{)`8w>a`x6+|R;s;An^XO~uA&ef~?AL>F(gV>$9k>dFg6Cp*VE zo<$!Dstz~&IdR~S<{@Llm=6W>gbuvenc}|kF2`o4*9!aJsQQYUT(frBu-4Mb>*eR_ z1)JZ7&scZkl1*nDwOV=Scg2SX3tKoC5)M0c|1M*QY7Xjqq}|HMA){2l%#m^} zLBPpk%>vOVjx9kRnir!MGfr8wN$E&_*-?iB?)uz*yS6?&*xY_mLYUKH`K>3*^}FVL z@^;W_?R3j(U1_@PQbg3_V*3o8wHvk^T0XZ}Oe*+h#3{=(t=9MhJ*&8U9^88_l%D%@ z6+6G2-(@C?IZ+J1UUbY{FVe=a(j+LGXTh#bOpTvonVb!eZ(M#sW9*>S8k$TKB84Vo_#6;O z&|0yUBQc|OrKsJ33+F5s8hI#c@Uu!vc{Q*&XEC)YD442sRWXLo>bgGV;OVESTihS_ zwy$2fVDylo?~nZl>;hAKh?d;ol!yj;&wFWNRR6ZgQ#?7m&N{elICN=`=Q0X>lZ<9~e8A4gd-~;x;qTt&{^pQu;&Ogqu8@#bGfg4k;Hjt$ zY!25ltgI9F@yq#1%UqhY*h|QDLePS}o(+?n7ygMADpxt>T&( z4)icwJ1{Zu={zm{8@nPIPrgx~wzkaR{T_yzclKt*&G)XIU)quMDc)L}f%Q|o_36p? zD?J%bXW1O|ORxAee;LbzcV`~GJ8w7h#_sCf+tq5i9-ge9CETFha8l%m!}&lftKGH_ z{e|?hrRH*!cz^czrR)Fio{D?9gY)t;*TA7@^@=khSJ zVK@K(chk!^EUgq@s#VV){DfH}hb3Lx*yo#^u-TQBry|Su9ekTvzJJf*sqb4pX|n#T zo}t8aBA=yU$ID>*nFW>~=BRqR$KEdeG2!#l7ex+CAd@p}by7c>>{?B$EU;RF%{=duq*DhYKPW|Vu|6jan-G+`l zza)tS4}&EKrZDMkdvQO^`qiyp2MSlMI@FS#_44h@#k;r5e@^mzRsLb`{J$;l?^M3} z^u6Glg8zXlw_^EprU?JfUsU|?z_PF}Z}OL=*BkF;k6ZlxL0$S>2CLmo0!zxo1Uugp zJ*aue|3yaj>r4*c>~)fhuLw_cF+6%+Km5n`h}y?jEhh$v?+*XBS^VF!kMkCPs8g@{ z_VLudbMvBB_w;V%PP_8!vKAdELHETb4~>!;z z?Z7P6&F6Rgv7KYtalGz}VeO)g-)}^%*}8)t6*5UpV}>{OzZz2IHR7vzUHORR4EB@VHm#KRLBd zhOl+9`Z2;E8s+bwoojFL;0@Cfk+!mbQ5MnlSKCf)d~@c-(*rwBHy$+M5jx!YrYM19 z<|O?qtL_v%sB}tJu84`uk@UI1{^xA`nrHv-{Qm#Es_EOlX@>lj+wU!5RS>9gicw{# zTQUDyz1BS?hId!bzluKc)bh}e&U>ru74$?I>@V-XEOfB?=+T{@_g}I8!kbk4?*H*G zr+>Xo$_+epbItb`=H1*!#P<5ft4-r>$gSGH&qe3#)cXthvl>(8MrbgUy%gIUW%BIY z`>SiC6a+bD9eH!-i^Foc3!7Uur$_boy^>s%bmg;asZ)5z z0tSg|nz91>?)>ZtyCo8ov39F~Qn`)&2lf0IJFkELzphUH!Nbw6n{`O+<3W{$3zls1 zF)DWBn13av=B3r8zjv>MO}~8ocC*Q(GdVGR`g2pRvgfr=OaJ+^U;f#Nje3hXXP=mG zcG1+&8Ts-l@x}5JcP!d(@20f&=LvazyM=#j=h*hlWEE&|EE5(upw3$NP=`y?IaqOF zl#^&zl!)=tq-hIhq-RO-&gNeIM@PSz`_w{Bi%l{=YSY>@E>zAs-Dt15PHf$$|GVp| zLMBXL`xk6K+xi=0;mRHU_Ujq{x$FsiBK}W)Z*22}#J`K!eoU=f`C`$L`>*c)()^p1 zcY4z4BSjls&7ZIOHTT~9-}~Zp#9GfYZ-|z^%%JVk9HIBDnKNaopvnl`n zWc^vTWZS7l8x>vdZw!yTwWTFg``O02uQt!lu3E57>&U87Z$|sWZ{OZH{P#-8j236L z>w8}JTl~nZIqNr!&tl5tfbp@c5DL zBmbk(M{KJ$mwCQE{HW+-^52+?Qmh{))HyQ$*?2=CPvCWt?t9rsN*~QOhS@AE@7wv! zt8k&ln&Y+e%)6F8Vy#WMVygdA`IhZ|@9h~}e*Ww6n7uw`9vdb({68d)nrdFw;=csRs3I1%i#LrB^~DL#9c_ls+z%xx2M}*Q=sa zOk$~Zo-^Z6Grb1 zr#4wiOgOXMAwq!Tz?-EXW*=_y54~Bl=kfw^M@Q&t&Kqpdt75CSpQSIsKTHpc$($F(In4z zbF%+2uMzy*ZI?fJhVio>O?wm>4#))R#&9374a@kqo1?RVfg|l~{d|Msr%NU*UmAPx zlfvfL*(=v-9o7#{X=C@`<2Af-_0*xK+?vLwF1J@k-sxBo&-nE-=MQbp6R83_&nLGCwRUje{$o9 z=e&}VZLpy_Y0a)2y|Iv*VW}E|M_|AMyW7IS7re= zJN}Ql3)&p7J-NC;F8T4@1KI-hUFYogoVs|p{e(*L51+>KCLS}noU2ZSPhtr$-QMW( z+ED$TwC_&EnTa>=L@bRo2@aM$VKuWxp`~mNt9a8pp%Zevp?brEUp5G9{+hho%}6wU^RA>b8#~X<<$rp-+I+be&)$_%X|rn=n9hy8 zn{)fx>3@6Gw8gF$-n}ZVd4B^#diHWFjq3LnTaPq0U%2NTzovawTk4hda~yLt{L209 z|27+@m4EqgV40#nvv)6pjJAV9uEEkHLR||KXQXG<7#_FI*zcXR$8q6y_JHhJ0`1ll zrk5Sw@A%BrAl*TQ(Z7_-N_f(}DGF(mZ?gw*rQa%0+7a2Dx7Wraxpu{hMZ0_N+g=ON z&v&FGNOxqQHYWtry0pa;e(%(cxnKYvU% zc~dcM=2bf>{VHLTTCRwIC2dj%{CB+-_;}B8SJkeUy(urcwRW)?xd@xd-ZgA@v6&*r z$RN?y=+G#T5&U6G=BH_Hu0PpDeoR{srq^b_s^OV#LB4#vGg4{r&6N6K%dju zYeGmuwgbnajW;;u&zzK&SiI5BL~H4e+sxZajvmu+DV{F3)Z}ceRr#8Lg`dvPef{)v zr{Vvae;cjyR!M)AQ{S{~$~BKn1pyAlfT)zswwzOnCLO(Xtf=RT_k(ByKi%-;*pFe? z;tQvI{kV3|r`Kn5>e9@ej(8jqp7(635u?juLncwh2~4W0X0xVT=}<^$+>u~*<>x|E zw*9P9j`m!ItYzkVrZt_j__ACzPZ;`(JlUesFdUnHp}%wVrihL4zgtD$bv}I>82;3;EoVxoXVC z_V4^_AW?UKU#EQ&TiCh^=B>v1PZGTKZ^z#{?7f@+P{Z;DRdrt?xGqH2P@Y zN*CzmOU!8Q`sDS<+3fD!LLEPxPiAglv&X3g zZyzwGndzjSTXb}Wo#zIfBa>85bF?b=+_SoMc#3et6rrUeQBG1Xx{qp}J}|w()UnZW zj^m%taxUNHepskH_ZDJTlx=rrU#QG>d{R?hv_N1}BCjUPErS3KHsy;*X|J4TEBwvYD?gfj zs(200>NgxArWP(2emk$&%Xq`_=Bx6;H}~=vok|b1t=DwFwY%cQ#pf3H#GPk8Wzl|h z^2WUohm(R0ZVgj1)}G98WqRT3oXym9_pnR^gLho>wuXZ}^KVBS7rkh9V|u}vfA10< z!`&`rb0e z;p%T&HWY`mPrO#w7CbApSjzUNzv8i=4O0|UqP%hxJ(W7O9Mie@jy*W&{9*pwrh?gL z^W#Nq3SBM;w_jIkYUVt-am$k(x)N8KEGDrui8P5^5bv~dW>B0{$`GfKanez<@!C1{ z#R=d37@VAP_L=YQ7jIrK-)-;apFibOo2iOX>Vdx&tG_F4+2;1+?y~lUX|l2U@6tc~ zSgjLPt-1DipRs`N$4~Nn7p}{v-)#MQznkOf;sZ6qHO4RgJe9_N0QE&p|l!9yDGW!|4`WZ}aaJ49Y zoF4t=_GNdCi~zwYU)+sSf@WPck2$(pf1i_UDeKC)%|B*6Qi;3mon6kgG~xBK_#m-W z&rTeCT=MO0@=4e1A72+occ|s8Y3O%8zG#MB^DIfb_pQ^V7$1DQ5S7e5;gG^o(?Z5u zVM|PTv>XF0v{_kiWtv1yxYV>oOvQEE_34vTn)clg(0q7?MdSLP>6bP$cnM_Q_WWjL zv*yKHPr(nKKEcTnQb}g7&DK5p*lxD5CRO=3pIpMdGv=G?FLTShws6T;X}*-e!)K^% z)2*Ca%X4JXo*l0v!(z6~NuO6Y^)Ykd1UBbRlZi9l?)?y?*l;K8VvrKUQW363p#)~n zr3{{KnU8KoDko@6sAT+WCKSzKRnS$ zSW3eZsYsJ25nq&^-wAd~;P#AHvGV$v%W^BUPV=J3eT_@SOmib+u7%j#zd!BS#F=8@ zY~PxXd)!t~nX!#wVW+yOm!^TLb=j5;1&K4J|1X#lS^7ESwak+r39}ZjqaeA9+ zaW*qgdXS5d*?N9q>!|3OkrYa(_w{{AOv_hBZxL-v+y zH&Vpkax$)y>^FAJNZH%rHch7F+G+XDV;fHPeJ{TEf6XWEiNXKa|9@qE{7&@y#_ZaH zw^{y9=@LI@HuiOkw0`>k?)n4$eShpF%v4&B^*eC*K7ORNEiZSmj)LJIHd)=nXI5;! zvGX^BE-3y)oGip#RIFTtTys1O^Dp|8?YYqxRPZLE<<>5vv@=?dUtCoD_w)UI<8^;N z2T!h^;UW(jbNq2KmX9+-QNSYDd0W}G%?1pu#~5-H3&Q7evrNpmqB;AyOGsr{qnPru z|1PKAn}y_uKQL|%KFjk(zuZDap+!NJ#ary0%H)s1p~4Dt-#k9BkYie)qtfD=|1M>J z`6hGx+>IlT3yroN3%elP85H;Mu>BOJ+~%MO+f0w&dNd_`M$PZl?`H=5Tf26xx-XOT z^s3ig^Y72MboM)7Bedh+;_pv3F|@AMn!B)3VCT-m|2$Hz*ep87$6BUUYwX%ZYd23+s`l9_5RqL z6@oUOlz03~{;m*{dOoj6_2`K>xzDqv_3v8u_rSk91rFR3m01E^e)_9QpQ+#q^-=6n zJ*lzBEZ)=4#j3TmuYCW?|mn9pMp0fS>>i6TxbUCHPi58|4 z?w)WK=ymf@xy+N^W_cr;ZOYSi+$;G+q}C={Og$JTnU&Tssp;X8v*r8BE^D5y|5>!W z_ba36H%9-5{*D)8lO*2%;WTEpE#hB3O`>Sdjk*s;%yUoWYfU}laQ}Ce;m`gxDtnTA zABKKD-|;6qJNx(#W`=D!jZaV8Dp`akN%V6ZNw&8tWRuf3zVP!g^NI63CFj=%*Syv@ zpSI+WyzMvlE7z`Fx^TfEJ3ITGRC&aP)YD?;9V=!zx7G-KFk-IM@cemx-wLzmJUJN| z3D3{XUA*q(b}kzw3)60e`%(h;f1J7Ezg0A??Pkpa_T71!FH59OZ?ajr*RLh`cek9q zo|whuwW=ER@sD5K2{`cfYx%o7p1HZYd-v{Le6I4^ftS(DkNRf6x^YcLH=@q^r^Yts z4|l6BpNL>RemLjZS?d`RJKxvG)EV!Ws#@^Evh%^MTemA#eZOCHJWt?trO*C3zyE(~ z({D7H!y%El>G28KoyBh7=KU;P7yD5*?(XmZPi*HOIc2>+=Wc!RkE8s(R`bvD97(kO zWc@tmpLC!7?`?aY>;3zEDE~I6hfsg~6zggA_OFjEei5&8uKL-U+25Yo9r?R8F8h0c z$fIkgo44@3DCB&w|NjzkP0>REcmCWzXSSEWZVjtqZp*@==XpQ+HXnSx-flm4;th_4 z6}SIKKDVga_h(P=wGD!oepVlikK;X1e7}xIGj~E)@BDp?4fp>)U|e!$!{5cq=a$_* za`n&dIxGK`2PKw1N!VM@dT0Co6-<$pU80_2*NaIxi)XMM4-> z>+hMpcl|%ti@$er?MOL%KI7)U#)($uf6aU2`7VF_Bj2y2@%{Z7?d=91uFU>??qs0K zl=v`(;_nkXVkEztd-XHe%;{jbx6SGRXhOinY7UoovO22!4;@kJ{ybV>&wBACjR!X79H|wJ>;7&q zi=nPys~bn}gs%R-w+i|0R38plx4mr2jle&%>mNlh@Yk$i&Aj39a*f2qL(kgYTNQ8J z|Le}WnEd*?|IbA+)NelPK=4gHXqSsFkYWlBxsQUfGgTzmYb9v25^+cz$^UEz0WQ@5KB9*q# z-C^F-r-@t~40F~lS}t{T+lp@nmPcMEN(no7hwDr?IduAn_1_C-3v9I$q@4HUmMToI zQMPB7H(1&7U@6mlsU4rbTQ$7oEZ)K?Cp~rI@!(UR<@J76&v?dSki^*YWJ2~D`Mb{k zQ%fH_e8a~mbHwJ*{64#eB;G|A44yVlP8}noi8nBDfFRg;YoGIe6xgE z!UyhbIFWi+wsG;5cNQ1F3P1UN>u2wZjq~O#ov{8(p5^uR2Ky{urT(0ov!m<1CF62U z#vLyg`R|dbc%-wZ^?HAN{Ku+yJ64`6_VAs^pO6mRO!keL&xoXBIUPqfLY>d^L9WGyBe=w_lUVyF0ugaLG=gU8dZRYbkcJcK>7S07z zj@^|L^!@vL{;Eg?{$S>h+padstoDB@ap&&r3*6pwW1h4(iR+yxN^gsqx#Lq||I_K^ zorhJM{`_eA6S?3}L25N`WziY}=SIv;wyk8`((MD)SO~vWP<(5gF?`3_m zxffhva@-TqaMJa}`@PMXz6?u+I3Bevu6kVGUtsH_#MonYaJikpk>I-g7oa#kAj{^H zs^F1a+hLu@RheSYsUfPqp?#&Jr!ITh|Gsj5{`7v9Wm5C@cpqTWXnlI%-CzGys|(o{ z%ky=oo{E~Vjq$DTe?L{mDVK^Ke3W|Xa@}rc_LInUk+Fu)Zn!)@*Z%48-r2%}&Ci)< z+&kgQG|j2(fuMKuo$r5=k4||s>#FF^WZ$n%&(>Y!-L4W7@wH4NXSZt zS-4J-H;al`x8eJ|6*-AJ|9n1rB6-ifbB9kJ-pcdoe*Nu+b9;ZU40Fi0_c+h~z?I35 zF>kL8#{vF%zCJ&TcdX{H{pl~4qM6J6HdS-ptnxUn3cwC-wLL2D%@|G z@3q5_L|=ea%@{50U+ z`yu!yhpqa9D?EE`e2V2AG!F*gunrKXh-i?#eB;TuQlp-oo@6# z%A|9r{m|hj4m&t4_dGrDyzJ-YSiTsqg$MH7AN2lTuE@A2w>0656G+F+c)mCL-Um(i ze`mvtBBfc=SSH*Th&ej@&C>(xBwy&V+wDHQ=Frmv?>4SfYlzn8?~CMr5Xm(80ds-q zx!8TLb=mFg4eu2_I9B!iM#%a@+Ea61E|+E8pN4GC+pL{#)-eF5WhB$>2UyfDWzO?)D;ntJ~f(Ip)81w~>Fk4(MIJ#zI&C@w2 zva~~<2v5}wTX!R;Uz**hs6V2Q!$!!0*{)${VxZ9FoOj1m;uKC?;bFexUl?RpxHDKY zIzsQhc;FAsve?@VY01|U8J2xJe)P#Xrn&!0;~rdi zt<(^7lJE7bj(bH3{BmlA906x^W@~XjaFOh=t@u#TrrQuStJwCggFwHAP4>ydmhYHP zY-c$(oAbjo=J`LL9*|pR?xkkAVz<l`uvq4IqA$t}- zqnDyo!6L;2bN=PET;Nz)VfU~nSAX?8M=3KWt(Fjvl>(R2f?qQ+tc$(WW0JEZBtc`z zhRP>XyBT&A{^jOyR^*+{KEGa=;eGY#V2@1YC39_;|5zWtSGb}7&JTf00UU>)wST|Q zb6|e$kGSXi+KS^9bNBuJdz<0MoAh_5?53aH{_i6bZ}Z2UI+Yer-`D?I74wsS-(SI& zg~i{0_0Qiw-M;qz-^kSRDW87-uk>E`XSw~)y@6go-|n_M{CwYsvu_Na%iZ7c*?Z@w z`oCNEJ9=4v-xL4$k@?S8vGdPrtqVRs-LA5H-5>LJe?8Xev_1O#es}+Fxm}!zH)=i$ z?|=ABexGW8k4Smlho5)0`tP~J|3Gtp`$d)qdQ62=*I)4ba#{Q`3v*M-p<@OICM0+? zYO)433GfxNG*5b%*gK_Z)hdIBv!bf1f4zA3)?L%V;}`p)n4KX{ME32qKRhSP_&I;U zVxiCf%cb=WlxD9!{#UX4sGWNu&(Z9aQyF3cK0flupJ%&$^XZpwubck6rpUbTM%@c5 z2EE9Sr{{z|(E4F)eUJaZ)am!Sr}*XXc{wwB?(?1B;wKtC{_-r6`^m%qg;l?$?|;LQf?>vo=h~J~@Z8A&#-p}_8HIG)y7p)P`ROaoSV0M4! zUq=SJ&*!fvr*uA&xBvQM$NQtfHT=Rt4ZEdRul|zPUw!_Xie0cm;F&et3amUwgCg1- zyn4@1iD)}uz|tlXa{b54_x_3kI19SYdo`?g%Xb;1r~J_EoRadN>(%R~7h8NoT~(#8nO@pcF0fFD zrKYLGZGw+>lU-+IuxEb!6!qDr;#X!Tw=ut)^`U0|5!e5(l@GY9{gC{7Ic~z^uOH@p zs-7`{At5E|Tx)7WDpyV0ffJJ)+;1ynUq7>K@zVBN1(wS+4OC~eDa`c>3J-QOGV(cm z$7w3Q~41Bm>{q=@VXQKJ#{3bJS zEr0s&bGc?sn={ig#$_Tbf0_2HDojp$daBZ;ihY9*$1k25wFtM4pT$`n-`yf^1o--H zn6-2Bp)FfEbeP+M*`}=&Jj|t?kfbdvdve2m{|#H*p4Ko4B>TJn+9G0YKks1dqbP~T z2KRP;Ub=^!fBkLt50Aw!vDEfm@)lv7zrZFTKu(}V`}EF&r!{O=)+@Pw8ZPbC6mdG# z^tAh>)um(A`8y@+b4~mI{wUn`_n)d#p{v%~PIb|(#aa?Q%PfmhI_@<}tn5j1oN9aO zSHbg@$AkYlExmEcW{&l=|9fW?`INlf8TZfSdew)3DGXfcjB*v4&F32mZY)yE5tR24 z;_}iutzw+s^1<`$(dp}y@80*#Ew!xOYwMwW^31WPKQ4KO)jlZ8sGK(c|Bu8znb%6Q zHgxjb)QPg}|Mt!Co9TDKPVHa6lT|Lw`WeZjG3TGQO5^0Wipv+XK8WOy^PA1^=`n-U zYv(^n%X?EB?l)~}NO?PJ=8G-9d+bjw`WYG${`13Wp8SY%&f;v}HYHn`_ivR#t{-Xo zX?mf=`0)PS)7|B&CoN1ons8^?%SWbvo=tqq!<)T`^XP*KzV{t^9&Sl1i&Qh`4zT$9 zy!Wkbg~jd($#a;35~P@dy_lvgdF&x?=Ui~|sdz$W@63}1+1Gd$#s1bXzjP&j%N*6s zt5&XB(el%{p_@Zz<>Gax7HvB7V3qXx$1m2|UJ0EZEVe=8v-hb#Le5-E1d``8$k|lP za8XZq*qBf`;pW$^SHh+~oUUnfm|3O0P2x>f>cda1Q)WsndV57D&*jSchF?Ef{!C?g zV#E={zlWiA?v=2}H9H=$CE1=`6JM^l`}-E*-tx&lRvVe^f(_=#&1BUu`}_Q0bNgl= zhSu(~B?1yo0v~3cnHhPusV(%(d||a1HYffCPYf1zg)Zr{bx&I$KiS;rht~qN=;p?| z!pT=tr5B!BV7I5|uD+Z@>ZBP#ic8cIJavK}onAcuPe97~Ki?lDPU2Xw;kfVeNhM`l zCU?w=*fp>1mzI`R?V0)F$Fd?=MR^@0e%Kt@-XO&mIXV1rRZnj@^LmFrnpXcmXu0#t zD^2csXv}JNSs_)cr|Dq3`M2*661g}Q7zhQt&Z+3TR#H~FIX7DW_xD+AB4Uo0hUYJ- zIm~o`{fgtw>fR&JAdkl9kZr}D!L-u!+jb_CM zgQ<26e>@y6Pl;G&>}T$)e&%|*2iq^U%1X8|IhX zR(!O#x#VlfW$BX_#6wGXQ##agtac@T;ZI%hq3w^HjgKzllVlC4!{M?{Ud)XS9F3Ql z)-oyvcrBiK$ZT5jk~pUOO@*uWNxkmczUg1r;x+yGPp8J`r+qfwEvV$CH19-|G}9)Q z2YM_;V&5tbGw{o)wK8xyH%@K%aX}#TX=vY}Y)1{5gmX<3;9g z?5*-_hxvarJ`K2b;FM_og0g3=GC40(e|uL~WPW#Kd$c$C4?|oUsNFM>fopCfKHBfE=z6~G-GZ%~ zr>7iKNOs<`z4=swIOB_hho=Y}c(bANyo_Rl?OZdX-M9NS=bp7oJHImN=PFm38(*c~ z>au5Kzg@6?b@!?)`&4fGiEn?-U-Ee6{D8dUf^&B-^m?Qned^r({H65@e$mzX-eI~) z7IPndm?#%z-FNxgMcqKkbf4Q- zx9fNEmoILb`4P@a!EATocbKg4g@5U8>LdDkZopLStxMat&il6-K zFJAX=esicQE1hNT+Cw%K9}G(E8Vp$$91K(7>D+%O>Ha)BC&%Wl1xxHFDNeq$X5T}t zxZ01RTC21@-pU-gE~5VNR$SEXU=7x2^S_fe1(>??$t~ZUFYm1vb$Gq}T_=;oWY!uP zE3u8|cs9xA49 z=N1NOo_&xo>)g4JcaGak-FN2Yno3WfH7~@bVulX4f;smDRfg+KCoH008qZ-=UMZL% zrZ>|u`*k5(o5;RXMQq7zAA3&D`y0DuTe(2*jg%bU==Y9m_U2wWyE6UyzPm?)yTZ$4 zQxh-eZ2SLDV%s*)WulU|g&WxUgR>Ydet+oIIlOhMO0G3a!tJJ>wVmp7OaIK6Bx@a| zv0n4}Q+t`Ee=EASopbEtUuJo0)`D~c=lm}MU+;x?G$Dd>6Qh)~zGYmQO3*=BCv zFssCEa$r-)y#42+SzkPiIrMYVq_|zrws)@<r^;UncTmJdNH$A>Ka_Y(1Ijpu5HJ*yv{c+YjzJ7s1Zg$_+qnhgtIH%3t z!dnq(Z#!r9-ujI-GoEkbSLoixc((dp!p95pN+F>vh!Obo_WLbLLf(Plt217|d3xfa z-ml-k1)UZ!Haet+i)f(_!8;$n9J5#D=(oduX$t&u=Tx8C&tDYgYp%H5o8|3a$y>i4 z_ICRy9A0h9CdqqvW#bz+xuy&gC#9Kb7REmDDt=bX3uLvOnw=J#@+>#Hq2+v*Cm_gR z&X%1;g>Bmy&we{RZ{_=kcaHviv{`Dh%oYRZ_bGeNd_Kz_up>MF-?7!}?jOC&VmeJ` z|DBanbal+*y2`{2^I6K=Cd_|y&o_Je|N527V(;&`BC}g{#`9kL&%BETS|1;utXpnX z+NXYg8>4UVUiH_;t%67UMK$UcrA+<5YwK0NxQ35a|Np$*byq%ON9*=(?^#+66aUn` z`~S1Ic+uSY^V=mGoK9zH1^TSZTRivj{ayhnMbY!>GBabt?oK{E;Z2&Y7;>LVy?Eoo z35T9d4A*0NaO|u86C)k_AA2Tu{;bWfJaw|>OvLv%{ma+Nk<)qAxxdVf|0Tr`|F2#D z*{h$s&(}#etiS(PbIHS$sx18V4-}Corh5u{LuV+bo zacA$p$IstC^}k>Kf5n!U_y3=dE_!PJ_vHKDpi}wxze?JDZ_Q8ZxBUL&*xdM2Q~$qS z|CcxD*3RdDUy1KO8UFrPPFUgGs(oKh?k;}1zwo_#QL3TH{QCQ~cfMZmZN) zx6DyPk@ZW%mx8xc z_y2pUcl^+gN4b%UF8=v&uAcpYaQxp1$$LGdGc#JY{5_#Wwq1--$l{NNfLXvtt4db^7z~PkyewWBC(xx4Lt#(;3Wkw%jN=a46lXQat?{ z>jb8@BuyP>g{8;Ry>t%WoP2RY(<>?azkfAZnwFk^F3fT6!HJ1xQMav5+>mNjn0k?i z@0iE!0^iFSk$vjdC%;^IZhFS{>&=Jy^y`0AuM=hvS;JORpOe_c=f3c_y2(x3rSh*u zPRUE3TWNN)I@WE3|ppqf0=h_f8Epb$DbXxt6_^^ zo6)xUcF+a=57A6UnPKbZxGyPZINh?~{DJhQ)Rr0c%iAjQTUvRqUSU~1(^}gny1QVJ z5n3wktg6 zS$N^fG^d1_O%3NI|FhRLeQI#5bVyLoeU+uX@lxR`r#hd^WUkf;0m6J6Q{qgo->;DT zcPlF^{*xfzOqWMo!C6ZJ&O{5O8O%!4$PzYB&iFFpxyGBT=hP?fy-{Ji-{;|)P&>=r z@0V|wUfy|G)~Z+idhyXO=eNH){)6F@Zzz8{TdU%=y7>o87TBZ&32*D*SJUM7&^o2E zHF5I3Z((}-N@QRD%gb7Q`sM4lj#8ehw4JZ4k7%er`Sijkox>ONRynIJOB9ye6uC2x z@$K7YnYW!5zb&{t`X6^&$a_3++4$opm+ifchqleL_tDk~_R(LK6!raU-*4{DOMhjb z{oJ%_<&^-5uGcvmxK_Hfb%d>nH5Q(`t@FG4%C(zTtowAa{7vY+4ex}WU7N+@+63<7 zi6$NV<96VDLACX_0((J^v)bv0n@}pZ~u(Fh$Ay8-K*4KIK{yv$n|MpR8YGGmoB0nQ_&kIpezBsdO{J zT^W|4yMt9uX(j&Sd7#APEw^~xsY4SaufPOhr{oF@G@Pd}%>RhxCv;PcG`hi^J>usQMOS5(&OQy)%?%zVf=$=R8w zZ0n|ipH8QIcrTV^iJ2?C3U~Nh!}QOKsYsG#9eZ5EKEJHhI$<$|%p2#WU0c6QYa7jsIBMcvuXobGMCROVFVpBEN=e5Rb6>~e)tP{%`Hs6 z>%ZGuYrIh;w)Z*5Wi_e8hEuYf6zwtY%8sM_vbw-icSsJ+H}Jcy~_J@BDh!jMU}{eWnXcFPVG@4>b_z zEP7wenO7P7p@+}@*zG@MN~-7QpFE*&e$VF^>*lqAVF?>&@)YMqRGg}xcD$S6Wyqv+ zePu#{!rs>}2gJL&F75yM`A`J!>II7!Ihg0S{}2l}tdRXFE24kn$Giuk9rmuz<>Q{d zc<7um$*^YGfpn=QKI*H3A4dF4QT~7KWci%@XWFfb4qClugd9p!S(%>iW@$_6W7073 zTCF4QVW1+_dgWZeffMgCCkjqDwST2t=hr`^vs+?cl5npchBQz8*2mqisnt<`+~D&EI8io{c^Nw zMP`KC-&2xD+8&jB|8m)0BDu_+Klg6nh3E5qxYHTl)dwnUN&aTNY~Qf}F6Lg=7Hy{) zQHdG70(_iP+D|cd@bM;QzunMu!DCKhgX#fwlV#g31{qy%&?xwSEpgwEcL9Dsntgz^L_60_a^t#RqyzR z{q!YohnC{{>2|^UQ?+z2M+o`&|5Rspz9_Npl|Yab2aD3|s=J1ctX`IKIkzMFCRTCQ za35RwGHZ?Yy;Hxm`!?C_n;KrXcjnpiZ`?X0IxCd2b9*>$%8JkPZ*;KS?{&_4(%+2b z&%bkiSiEsc?^035140Rz6M__4j!j`x1A;)RSmNQyWM(ZCQ_IHwWn8UcMk;hXgB(U4e zf#Sk0$l7fHZPbp;r<~bR%7Ys2`0-9 zlqY}mdfR^R19M%1MR9jc`8$tZoi49uHTj|70ToL|S@{MPDcM68 z*hHUBJ<^`DYxm<6CbsTtI;uaGMHg(FPz73VnzH^K>$j$jjX$29zbI+iv4rOqpIk!P z;h<+aQ9Umwvz&I)iQLo^V8JxAHvLMBZYcMGw|{*fYV7yVKE)d1vBD)lQRQICtO<%M z3|Q)znU)<(=VTIFvxYUBA*FZOX5nYQA3WT0P*K-%l}aFs=Fu6hVd-4Ot9;*8Zxfo$ zGU3P}g;w852X#(*GO=(9DI6B~edF*&7j;G!(KKFfC+(ZJ{#z6(c-lVw(OD?Mt5PB| z|I5U%uH*A!&)wF)Z+?ya!OB-RrC0ZwM+Jt>(+}nIaodHae*Wm! z9LK`RB5C+d@_dTB;>iF`kS6~ijQLo<~(O3ZG5KWQ0PKf^gOF6Ty5ze`uQto2+b^06i9+8Qmf zm<t*`enZDI1iyzy<}D{=LSGvzWeQeGY_|9rc>p6j3E zuBt_A_U-7jt&X~}b9J*vw*6sE-^X6s>Q92g{#iHdKX3kd^ZQj2oI6(kiU}$`Q$KMl zgMtFYcL76JvIN&}r~&31V71 z*Wc~no1cl3G-sckU1qrYod2zFlYM6C#BQDEvW#bkdUh+Xi_Mg)4#}+vVezmaOa!%XZvC`17wkP=i z{dr41F?(nlZgINBHD6Ifyvd4L>_?)bfYd3Il?xL3uAMPqN#*3_mQ7b^m^9%{i-*7& zksLcU2@j54#!ZgWL3vHmZrd`n&GuN!zBbtI!DD||Wkssq(<>88p6RS`5$0;SAa#mU z@H%JK)10iQGPf?Zzg*g{!p3%$XT@U^iPIhe%DHJ9jQ(%mTiiSG@ve7&-rrgE?&ZAi z1#L1xLhXw@W-W8+o@P^|#5ry8fla#V-;Q0&;;opQvnZ6uB2FQG(+yTJC9x;lk0v#q zZRbs>(3Rkr#QUUTrT#ied5EvgOTUv=mveCveW6nk&s^B`G0ilHosSx`pI(7-}g>$uZP^XJ@I16 z@trfJ^7s6y|B;~h;BRyAp5NbQ=j_cFe=PiYj-9dl!ieYQ`)3~dteefYX}a#8>Sz}8 zoqJ2;gHC*3=fG7hY+U>L%>GM1!<{!xSSje(;kA6HLwmBsi38!)Q`FxD?5mKj+2sE+ zihpM*S2^SNhIOJY4poaje<^p`%aUwbv0TgN_r*8z$70t>%{=VMxG!iTgDdBU7iqS9 zkvx2JHQtsye()*a`um4B_C}MIwJJ&t2nN{OH1ZX@-Tp zbuzb3PCA^`aP*N1$AXXcOIQk~URb5{D=~%XO4hWQnf>U@@_pW5@TpUhL>z`F6Yd!lw6;ZUyD)-!`6!*W2(nXp+RZ*(moC05Q}$W*#1Cxl2V@(%*!BClABP_9QJ>Xe2WR3GY8)<__m-O27TGs5y$===1n6A9syFGJpuix84t0ryC z-7!ho-JF@HaK?7S9TCSry`1N6Xpz7(H-({-sX0o~dsaL)bn$6Pe60&oX_T`)`E8h@Mw1P#Cz2C3k#RS^j;8v%#mXPDrv;;IO~*X3KA_e|l9jlgsSQx2|~2=dduKqvb^5 zBUZbnU58e$^R7H`V0+`)=#AF$?)yKBMp$#MKYQrq3u_}bqx6LT8a`o(+xSwoujsni zFAV4jZg*YhC$XT{G3KS?mGsiN4f z*>66qnbjawyJq?Hx~{~T!k^n$1gd+Bb-G%6v&VkfaQY9Q<+Mp*ub6juW%#o4tv%R( zefExp4H{E-C9P$>ZeUc@c6N64&F|+judTm(;>HiAU~aqR?yGP7XykEz`t6_0)&q+J zdZX6)pVhw*zCGv8o#Pjki&@N83Dqop6FSY1^NCQ}kE`ddTJ*1ZlpHZtgQe@J(9U&! z22G}I0!NLzo;32DxGSBIE8R2gfoKB97uFRK9O@4{*dL3|_{@7$;1yTmmOcS#b(XEG z806JND>@mvyycFbOqsDEy)yNkrPJ0P_T?IEtjjFCr^z_KN!VQ1RQ5K_ZpO2OiVmB- zB9f_-BHJXAW<~Pw@kve*5Qvd^b*19`KNX3Fka{^VQ?Op-kE>3j_G48Z;cx za*p0r`MB5cl8jMEWk))LC-3>WdUDR5Y+3H7 z9W3YO=>}+Ak&L+CC$CZeC811EFg8cTVcO3*CY({ZB|CfeS4W-OeCwxv&A}###Dx)y z0@etu3J8D5-`vprSyJo#?hbR-^wk9gJhHQ0+?bsBt!^EtC|Jifd0yhN_El0fqD-vP z*V!(xS*m(GIOFni(Fr4(JH?Ty*QpySAavcg|Cd z<2TOpaECC@&pb9GwaNYG^_(Pabqn9SVVbvCZ<(|!HZN`SZ&3Jhl0ov;v>7Y?w3dal zTbiGeeSMDeXvM`F7mGtT<>p!_t>C!5ZLRYXS;NXTYXh}@E4=;k^?T8e6OzZy`39|S zKchP(QsdgnYg1oZ@|!kIE|r|WLLlmcbLu{Uguo+)clPR4MTno0vz;3mXIt@b#evnU zYwAotX5Fo~te^gS-P3K`-5AgLOnGt6^?&q6wq)avo8mj=QaEdRcyHz}ynMEx{N`a> zvsRmOnVY7K`K`BB1buz@AkreBX>;krn1mTyojhB)*zOm8IARd3Bgl}&qj>1B^(UPv zw#S}LP2%nIWtpz}hj;Coh~`Ic*aTLvrJj0dGjFZY^2sSD9zDE#(u(cIk=Q%#jaO8Rh%nhY37~pUmo&sdzR)Dn`_^qj~z?5D6MMR zxzkc*UaQJC5A6hBhtf3%cJa#2u?tn&@_^N=^3?N{?VG)C)!ls&v96^2iMBuocO^^K zN+x5wo-jrG$j3M4ZurX4^HhedPGr)|O(Mr1{LNbO&Hq|U=K%v@w?pxVA9O2rT>UQ) zAgHtH2+t3Ll?P5vs}6GtnaVnsQS{jxm9IDY_P4js5bs{`u(t2AqdY4g6L(ADvIma$ zp4iE$ds~+-KR4@)Lg@M9u9=IwwOoJQarB#dfBCwnu7M3#*b78Ang|=*`gY{6q{5T* z<4jDgv&`kiKM8alWxBe{Uw4IJ^oj@U8@+uNg_uaM4_sf#xR5u(nBf}7)~XZo_EVyt z6z`C%KY#4dvd?U57(+v*TyT=rh)TT^?88}C!IXEJ+dsuAPEvfshNIzqBCVS7Gx%Fr zwM8D!+~4&;vEo3^LW!9SN*Apfw4boVJeq8HQTJQT{7rfW$3G@rc%Q^WnyxFWLVsFIn(-f}U9adm>&nF{;(U(_2>|EP| zYo=N+5)ZBDYL`Fc<7+9Y&mh#geQf}5%cj;%rc*>;NoaAHCVvok)|JZC$gn|3*XkO- zCqwVMsI_Sh(OW04y*vNG*;o22gV|ebvQJz-`u0wnYKqr!iS)Xo5?#*I1iag1+AG={ zCRF-e_7uN;cKL~0dT)L{^~n@@5VgRR|3O;Zl;X8Mt5j3hN*Qm_TG$}S?mxAwp-n74 z@gP^Fq7s7%*YQ;kRz6rAFumfMd7IUtoRvN5fhq^guKZsS{d(2+??nr_TBA7Sy=PWh zy*#+E+0NKy{^jmA#=TY^yU!ICurdWqDg9!6ob$l(2Zjgc-g%glc5ZIcnj#@l?-ga9 zD$1%2*$>z=&PrwH9-pUk_wFsfJ%x)WmEMn9%(Hgwt;stivlzDMG5gJ8V2a4z$PuO# zyDCpNfn!b3#f;vDT=k~yg_kEW7ZSB&eOH*S)2{KZ1-nqTzawe<(}L?RNVN#5GpEBtTvn)5je;(u8vwMSg2)UmWXD!k|H|2(;R`TpdY zsePNDyi8^1pJdq9^SEI8XHF)qD=Pw=R;Zq7xWZY%d(rANKkuRMajW${<(YexZ$I|- zyUosRk!Kc%p2%-io9}&j#(ClA&a;{83blkSnYK>+vjGp`9A#LzyJQ$BaLMnT^+--ED84Tmy0I!JT^$UW_&R7-lYHD0sV&# zi*+yEaKwMA&;iqJiIcBJO0RmGHMctdsNX)%hw*Dy^ExaHSh9P!cGioF1uKtz{VTiZ zL??4g(Z0kk1(B|!%YJWt`PM&!Rcq6VM32=U;@6qY=ts@C*B`|&YR^q;_ z(Zl#^>AHZ3Dc@FY)V$E6bmZm!Ei3*e@%(@2E!$nBZP(*$E_w39(lagvY|Rr`PyN_( zvGY-(|L^pbRgZgGmm6Aqd9CpNv-T^W%V(unP9)#R+Ge|W&RY4zQ!^J`-V!)PNv&a5_+r0aE;-X0uQ`jG zWn@d3FQ0w=GH3UZE3ZYww*^PrUUP1q>n->1*z>o|haPqw<-h#x;OFfrJ8R8P|9JBL zf|r$U9 zSzo(*ouX=kw!)8-@+CXlw{2V-su0zhw)5}lx4SPMkI(p@{Jl(9Xxp{OFIA6&I2CTP zy?Mtw)Aiv!<@W8tE1wIj(n#exlTdKtqQCy@9qZq2e|e&8)B0alktZMhwsWtvUMK!0 zXmOu6yWZQ9iN}}sHFN(+Iq~3u(Qy{JQZuXQpU}&H|KTBL?4`cyrIH`qTr<|!InQi;wY1l>?C{9uSG#l=8UikZj4tXHQN}I9MvK|Hs#uas7txyG+&ol)Ra->*DTDaWUezqeV|o zcFx|umfO|H?)!4FDiOrWOJ#{8|?dg*b1T59v&#n*L9D2>rMZTQD ztJhM8&-Tj&KlRNo44{g^)d$-cd!h;KSisMePY{Y(8WiZMP6cq$uH7_jln>nf4dS%EyY5l&tbtFC<9 zB72?X&q-nR=|5IZdgc!5a8&%ccZc`twA~LcOXcLs zU*C01p;A6fx?D4P`kmX$(osD7K&)*Wie&! z=`@-qwm#Y~jdPnC_tGO1l#cfD|9tZ6PU-rPk6YWb|Gem3!GCYx$0(`kJ`*2BWir_A zRB>-EOxx%2NZ`eb`CX$Hk8GyT|Gzwzg;_#-F0(|^4Cytn4{>BSCU zDP!RW$Isg>mAYx8CZhvAa$c@(-o+Yu#T79_I z{%_IMb043W??3w?*_ol{`_H(2-wJg18fyl{a0@?3V)=expCI2G>77dPJCdI>dvCM- ze!ZUcz=ve#o;@XMWgN>?CMX>(Rc&x)zxU{*{cq_jQ30+Yj$3aw^JbXE^yqed?iCU4 z6%AeVw)N2NJs;jA3ElX4^5L`J+O9^LK}&v2V7VYrx2Bin{;d`Jtpo*4a@d901y%D- z_S{-=eb&|)JL-2cMR=EotH=MF{Qh%|57S=e*5H5ui5*?#x_IBI2NELErCFwI?5?6r zjqCs4e*d}re{tn}hb|G#bmWx+s}Y7bT$= zFWxXLh|m*Wb*%T6sB;Qi3d^QNJERsJE7;BK`rx&{{ptI)`l^j0n(M3?P4@g1I{%0F zVL7Awfvp$rU+r8h7Ooq4;9|!78w|=$?&-7uf42}fnujNT)1tzn8-e$QK@X2h+-L{fj6Y_XpZdI&Z^rb6x zZR0_noD&BotiCff@ZarS4Z3})tA#C@-y2Qaqv4pu>ZJ8YGpNR;hCyg@gYpBdl%5Hp zOMMs0s-`QfpRjeB%>?5IR!-MAB!wS++p;imZW(js;xp`r`g%T9I@L*8iG)aOZsK2Z zl`Uw=j}F0x&h&cr0@qpd{_!>HG2i8gO*--0Zf@U&ryRL_PhwPO3l>S2u=aoWx)@73Q5XIXBqstu_Bd`k$EJXMIK?M3AY`JF+AsE*$DzO%K6|HZr06ZU%Bt}Fd> zFZExy?SXe+c6t>a7HTlG$TD20`kF&lX-(;ab7nh?`OCLx$HndNom$#=AujX=&&&v~ zwT-_lL_R&J`rx15`g4_mBnP)*#l|<$kKP>YZaAXy;moC*^V5@rJOaA(j3r-tP2Ljs z=*JVo^Gi0@cg^l&a1judQQn~;+n1;y{OPLP({-g@@p?jy2HZ+gmfY_c=L($J;^bd4 z@1Ng_sR?V?+E*XiB7gRuVpHgZ(-&@k-*)C0@66l9aS5Um_AWTz@Q$@oZKJN(tz+NX z81yCgn>(tU-*V>DECbtbdbg&W`=^;F#AM)Rpt$4M1VQh6f@ZtCwy{_U)E#|rC;#I1 zq8qWdCr*BD!0&&kT+xE*9fQcK5B-l1Ra`ZA%(-;Jvd8B;6sB9ozUxc>$EIkrd5Xd$ zrrRoQ>C-l9MIFmNU6J|b{_Uba^QLv$i~bTZ=VcV(V!c*U`pAN>iB<55Xk2Nmob0BO zn!`?I+GWqhew2vI)XCNvaPzxgnrwJL^G1C8Nv$*27Us0>Y7Jl%>?(Zq;pi-e>5p`L zIPxx6-KhTfIC#m9t(*?5WDHSh3vqr?UBTdaxK6eGK~}r{8*CzX%-x-uMj_0wr%i`0wvnakH5l4oQ5pTDn{eIEbG{MkVP)27 zDIla#QsQv3x!82Z7an8AkgE??3uxTfVdfBgeV>WY1Y2FE?bc?T-&Edw+pEj6v0Ss= zGKV|AVax^Ep zH2$^e8^2cjqr5zuuiO(eU=wv_2x*j*cUxVMvgw%N0c$4pY`&xNjr)=``ws0hv z9GZB={7j3JXR8!jJdfj=f9(xj2@^w28?L#jfGR~XwFbilU0p&^E0|qZ_f&Uj9_05w zkX!k%)8~ZtVPM9>mK$xq@_kk@F7fynsMwI!YnLo=AgbGS1CwIFb}<8%u$38G+zxC^5VG4K;H=@K z;MDLy`Ha}<9~(ckb3XK+1*%B4E>Uy1Rb%4XmF>a6%P3OJ6q?JGxuA<9Bj%lTfH%XH zw?AE-C%WnTKA$J5C~`Pw;SP@<&Mdhc`wcY$BR@RlYO>jK*4Og^*JI<`;^s}Ye+zEa zYN|G{l)b5G*#Fo2$FceL;+9OIoS7_p7eD!HaEkv(ds<+Cx*B`$-aoBLofB@{%dh&M z{7^iT>p%bh3e!pZ%>nW_Evex+bT!*`I&&L45Xn{`d8n z7yljp9iO!?YWw;xl}o>iZ{Gj0a_8fqB|8)tO*|g_OrL*x?c_hC7sg~gxSr)f|l%15l-ObtoeUx z>zk-^53gtN@3Rt9=dI6sQp*r0d+*?4<#vGw#>)F2_CECg@Zm(Ycc0jUxetHutbZa~ z*6Z@$yP4sg+|N`MgTwqAYoE*)m)&0Z#MJMol*412-q(^cm8~Zq9*;0Dio5WvU4D7_ z6ZPq;4ZKYjd;Tw7_CeiKxpLo=8)1hsCiuSos2QZg{`2Ez|Cg;fZ=W72ncnsEoS}W~ ztm$!o4E^gq-?sUFz5eJ4?{uX_Hw@2zcyB-T7sI+H{s$-X>vrE{Ui9st<;}l$LVhtX zl{)ZhhfwM7aBKIVAN#*Pt^D_h-Lj~>rvQ`)Mbp*1-c%OpYI5E=Bz2(v=jZCLRq-xC zKjJGM^Zk2y!{p(u+(*CdX8Ne@^$zFQd+(y_cdIRpU!KI~y%%j`vkq3;!TRw(EaktaqG?A>I&KL z%J=^xv(w_Ys^)r5d)mFGJ3mOs`rOonW??BIjx8qYty89KYbkQl+*13X(aHa`rAU#+ z`OKX%mo88HWPKnrifai=6qAag;ZDs?&U04_Wvn+Q-@JDB)~+|Jzuhy={`+r+?d`>D zb$<#)Pg?uau3yg6I6LiI-1|NEzpg9a`@YJxynOpIu5WK|t6Ok}#MSS*KKIpEyJgAM z;WHvQ-rcq>^}7D^Q~WK1*RNh>WMwVdx^?TPIc2SevnTA{y}L9$J^ks{<<)n4Uf0g4 z{qZUO5zB*r9}jWsGx$_X#xUmH-&fl<;f}pfr_0ap({!W#Uhg{f{MU^7AD`k6u{ZEfx4vu7`ToHtKy&-L(m_BUT^&42y)iXivge_QwcspVd9=E&5= zPDV556#lue&^gqdUwmD|>e%q`aPzkjTc7{3C|%RH-){BI>Hme)8usnmx9R6ISEHFW z3xkhYpSQmHZL{t5<0}`}JI(*Lb>E-q7K|!FovVCmjLyvnF1_*Q_ICdr`Ui8)e=U4< z<5uYDbAMM}mit@#Q{T6vHLCC9^u}{KdHZ)tHk|+W;D)6ld;Gs{=Az%<-d?$S_2R{g zfn}G@vic>6VPl1B$5evhV=ZUtqwtMo6o$k~X7gxGi-qv?C zRiE5{`7`63b@B(a|NjheivQPrfIVPm$m4U$;m29G-@j9HO6}>(1?$(Jmu3B_96vtAJ1`Z@HR$c_O+A{Q-MO*2zH8gGnZ-WhpB;JZ&e>@_eV^PZ=%6=U zS*TN?MPv3PgIc}H-)GOtNcv6pJ(G2&|LQg3ga&9>u%AG_9cj=gU=e*JwW>>w)N z;LY?`c$Z9SSf*^n?Yy_EmaaXj*fjTd@Z~A{F0FrXv^>7V$?^GZ#?pNY)Bop0Hte)q ze|t~mL;KzO|5;TUJXDO{I;486{QZC8!;+uxPu+i4`QCKu|M2YR3rz|MRB<7GBSLV-eHN{dP%yh<@KJIlUL`pTb@ke zUAt~c@W1hEZm_>0_weJyS3jTFJ>%!T`+wgb@fi#;>OJE3>)jf{7ED?E!b{P+E1$tB zvuDyiZ?9(!*ZNo+j6Y>FM%`3clFXaYYr^aFb*qm`@SUF(eWlX<){QkfGGe>_*Z$Nu zU<`Ry>~H*e>LCGzsczFa7A#yR*7$ili&5tBjms}+to4dfI5;6gB*;3Lk-7I;0;fiW zocZIQcF#m1&fvSciP81{!?>1f97`ueC2F)bsx45AlRkV!$~n8Gz~g|xxfX?~Clg)^ zX>)W=VbWA(ROIAp)O7IfJd@_h$UY_EYn$GE&Mgfq)c)80{-%55bM4Rb`YExovZbY^ zC1quD_8dzu#tAbpF*Qj|yLyZx)79g)OW=_$YHez(bdqkRx#~E@IK?pLd}S?pu&%NPB+?<{BhkIy|>pXTTPxY@vM!CK(lxHsbFJ;nn! zve^x`I5RmiDw;5+3Sa0d=#*fRS|Y-+&~T}v4nvSrL`KrGXXj_-?3-v1p~xZ?p)LA* z>ak08&-K|tCfApjZ(lv3j$M~k-oez2?FD1e`n_HO*-lc6G7bqTNi}&1G9D80aTb`; z)Ud_ywR48Ge~6PymYU8%R>rfpH~ie0JK;)GovH@YsxLC;(rlmEYJ8bYnn{hB$1}3qA;!+9lelK_f;9MYt8Ua`e4Y<5|H_C=kLwc+cURa zFF!9K`R;AwdA~Qxat$2|e|qd#U6U7{Ag{#m&|u9S27Vc#nl1O9IXkm)vRJZA`;a5_ zKKWpQ(Wm$C-mTkq{J)9N2cZ^!zUKmrCZ@jqN9{{qTDrc((%*acb9|_JVt-xak;{{S%)lQJ z3QQlku4+4!=YKzU?wsWBJ<{T`O_$t^jGa5HZ|tkJ4*$xq{#=b^Rn?qOw(q;<&71e> z{oC8yx$9YG#?R6HIse4|2dC>N3LKcG8-41tox5Z87Hy934^x@mzI>TD$N6%cLcYfH znCq4Cdz{<(UY>FioELaFUf!;G##(#v)qiTw@Tc7slM&cFwW3IJ|MKPSyLMS^%emAP-2rAmYOo`<}vMuPFJaFA64JVIPIFZp$6Ko< zdwx9CueW?Yz4Ed2{TJJ3FTNXd%5wIf)I^Uf@xlsUJ>(8EI5#P>E)yvTZTL9XXL7yw zj~Of0_Y3FeC>dHE^GK5UtmXM|x`Ew9CC}q0PuxFVBXl6%)!Tl$>LIJ=@RgpPkqNrWIj}*REfme@^0~b30#XDbv|f-=}*Dwmq-EffTv91!(N5e)6UyQ-`0)ZHpTbA&3Ui)UaQwUXD2rMPwg4` zBi8pm@*RJ@%yjSGy*x6uO#!R+h&N3Bz20EzvXy4f{;U;s)OgGKV98f6#S1|bPCi-i zM1xCu(gu+k98oMW*;;XdZ0EBlKM#&{Gg))%hOMp!%Y)k4!lAF(drmiq9b$OjUsA`N z7%*Q}fMN31*CvNtI5-cnC<-2O@LnGKc4ItO!SU`%)P%CtrPUf;`_gw;l!HV zp}|)A2B-Gl{p}j}YZAkZT|YKQaWe=0@-g`PxwY==awdiSUuU2DK7nml$+_Q_%>4H? z7}mU&yTBo=tKu}PVNRL-#LUj2`%gJ2oT`3thR1# zZkn~h(KkY1{pyE{eBb);@CM3rCwfT-YqYfVy({JU{_XR;=zPU1R}SpGzq5bt{;Ix| zut1HhO_i>fS4F7>yH-^jtEgQP(dq45GgGm?Ub5hyf_CJMuOFmUKOgXA=bL(|QTdeG zs+^=#%lvL1nd;ko;YjPENGETGFt!C}udLzC*thFW(%gj+`7esB3S8!-S#4AU>6>CfHpVO{_E zfCCRE*DG8Qc=a<@u;z`J;uf_ZC-QxN*GL)2?+N2Lu;>5TLwo9H3vis7A8YuxnxpsQ zd}$V`C;hit_v{XBaQj#NnREJOt*7!_Tt3WMNouR3vpZUN7A1P-URj`-XJmHa_|)j_ z7jE7&8^sj zbJ>SADnBE3XgZ{38kEnscWzjzsBkpWpZ(jSTQBVSmQIv9mKssLH8x`g&-RRllP{!t zOSb9FU2{9ak+bQ^Che^kny!2@&rEL-TM`zxUVE#>0AG*4FKRJen6& zy!D^^UhzQHZT&6NdrYKWU!Q-CW5fNgi!S?dU-4a^W!o#p@@jj3rY_5`X`aWOe#EU^ zk+!P(X}(vZ;=&1=J+h9fMo(MZZFcjci0@ZMsaMTCvbCM3_3oc~r8e2e=+MR^1{;4# z$iB^W=vdjv_-19HRJJdVbHUYU{pXGI-zXU`N0#$XT#yPN)4Z{R>(R*O?4r zxE(A`$zPcz#kf`ImB1A)&m|Ey+Aj}W_4&^xknuDp#H;X^$9#F)m5odEKA!R1+AaIH ze{z=i&GO@(Te)rjo}8Q|Uh~FQ{pz_r-&ak}Qm^0eXbW3Ju$5SYChNn7lnv!Q+qPLm zuiH0a<2^f{(@Czkje-vUUJ-fE_06TcSKmcWxV~OcD_NlV@ay+WG4cl{h=uR@TQzUT ze{mD@D+`W)zOl;V;w2xiz>Q1y^t(DUY+CY%aV_Vfl@pt)oP{-0I;AfpITW+JTB5g{ zxt+P`EaU9vM9=DmU@!J>=l=h(YU1wp@NJo@>uYk=o%1BqwJR(?ecDbww6of6-8oAt zh}mRaw)2)42Hm$U&ZR9+-8lAhS8yF`%UH!()1}Xj#%w+NP$kFd@sSaK{d3 zN2W=Vr(Pa-AG7X9%z95Q$1rZLT`8*JJq*0j!ZqdT!gCMaTP502JBPJ({gnLz5>5hq zv(`l2b8vs1b}Rg7r@P||&M9-0!gkL*bn*B`wPS{r%173--ud*1?OVpIv$wZ9?sfF8 zQLdh6*|6!;j3C7&YBCd8d^|6-^vu%xpSSC8=7Aca2I<#t|4j=@%4ppp>gXJx%yO2k zq-B9J)7n5^MWu+Prl)xwO_ndbd{bJ$!Se*aqY+aYqnxGIj1!!0ItQ2VwoZDdt#RHu z_M80un<0LZX^WP8k&{S6U=}LanHMF0`>pYQ^l2Mp$#Q8!jD*DyRwcMBXsrfA^ zHNLWqsqn$%32zxqSvOrQKCW%BtyZ=|a1+1bmp9%rc3-5z?0heXu=qANtu%P@QCsWj z``=8@CNivgTKxQ1pVh~E8Cg6hH#MB~{W@#wX;a?B(GA7)+B} zy0KJQclNZ2=TamkWz%bn&Yn6LShqpB*z42xLNSg7Q5wsqFl9DtsxmI@kZ3YprZ%H& zPxH5Yub$H)RpAm_mvR?o2>e_o_~ZY9D%LZp6V4oTc5YfYM(Yv)j?1p{ zUwH#w9_NHve!1-n6lY4zesb`)+>);^k4M}SSn~Fgx$|}R#y+j}p~?b_Zv2o7#OR$7cs$+2ik6V4HQ> zs=`_K&HF~{;}3lMGUX>Y=f^W2U zPLyY1Ig5?aoOufcez$)$S$flc&FSM>qNl3g#pJ(Nb$eg=e&g-@ym{C9^(6m%`Ecf6 zc$D(eMhAr!hs?lL-&6ulX^Le_-<4>6u5iQf^y*UC#_W5?M6b&{>v|)+=f`LFiYFIs zIVP%2KYLcQ{{El&=}aqlp871k)RLX7!0P3dW5T*pP*8#4(V?jqWSaJw{9(#q{u_Kk zYlHiPsZ2bniF-6WZ%(+LV4dn3xbzppy{&IgJ>R`}|LPaHx`t)%%0=&1cFL|+uzf!L zbKgAm;&(Cm_Sb*j{IxOaf4Z^ctL#^@t=F3(Y|gCeV@q1dz!r_+%A9Wwy01!xbFG4Pj}`u8wCFSX(x7o^MzFtTijiL4=%Of%q=a; zerZ(d{-{0u=whcp_`f4+n;uI1%8-bYbNb$|@cl-FR92QkY{NlK2~7_nu_s%WtYDqS z7J5tC;c*1_U-r1xuhMB2OMa<;;W4^#D>S;U^0&IlUt!I#&s94(X}rYIBHEjc!6!JX=#eFnX+=^nhghU=}LF(`5C6bZo^{2xbEdVhB&szUYq)B znifuR+>~&k{sY75X!8wOZ>`QOP!a0gSoha0>7z=&O?gh+pV~9Zj61A%?byB3Lo?88 z;Zoru<7wxFwmvXEFsbi0@#fFat1r;9 zjONPGJ&{t(Bl3C1p=Yb^@0iv$^>pHWf6p)cLFEtGIbEt3?z^hkbY%O2mu?R-7m5E@ zbASKGXjK|3?_22?vJ%hQ?Q7>GCudHHbY8NJ_4KsRr|P4aUUo0{Q54^d4!gkilx*Nu9?Zy|(RVB8la7ItK(xfv< zQ&E${GtlGGPo`}GHx6xNdnF~EnVYRR-f&3fmh zUaqlsHzXW975cR#Kkjtn-Sq|qPZ<8zHuv!I2j3S^y7lwnr4#=Zn)z#|OIdeI++zMZ zDWQZ}|IaJVW9pl}@T)}Zuhb28?RMU~_zSPx;`)LX8^id2+#HslJ6IGi1|@NO%6WQm zws930@Rsjq`){Pu@%{FnN0JBs?rplLvuBcs%o)!Jdl-235YTthRgxjqD&5g4cZdfQk&U6#j%!=ARVe_H` zu?I9JELpFAQosBTbMJKHKWA3^$W?c4oxZ1Y-{RvlJVY!0-DK|RO}|+Y$nAStX+@C0 z1pWW4WlU8MwU)15QMq=4)DqnV46f2b!Lyu~vM4NkD5-iPvZ<%3XHtsElZh#UKAxV8 z2P?FiRp;a`og&asTrc0WLJp}K8t*vPnr>sz}qHSq8fAr}@t#szbyyK!?x1zc&`qtW{- zXp+0Zv~vLh=e!z(m|8U=rHnZjYzpe_-`wr>Q#@CFcX5{2LhLIDj%vkBo`6C%7OU-j#2Sm;p2^eb0o zn?Qt9f})0!gm;qM&(11{n^z~H}>Z9-)wqx^ltmhH&G|o z#mgSOX7+Q@p-nR#8TS2oev>_5r((yRFvUi&ch_@kBuUQml#wM zJR-lz-*7ORdTg1=ef^n#Q=f`2TJtCOt?Xqk?=9Q5`K^|F96rakc!ux7RVVk)kUY3S zQQt(7#VO;~wX2_x2>*3CETo)bP?6G=dX_QnMsb5ODB?t&EW})lrYiO;%?(@=xqHs? z`H~Kr7F8ym!NpTjwHL|Q%{kb!c24NOeRrO-Cv6i?&RDR2k9h;*i6BRTba~mgGQ!8r zO9eP4trU?;KNaxp+w?Pap}+2%{=a?8dX?SvTE#nA4t1FujN5}>o=-|^DR4-b)x^Df zx-d_Rho6|{v*RmP8gfc(jj2dvZ~m*S;?|!SEp{_U?DVy#nl8S%6H-rSSH4^tIHhUP z+nztBTh&hf*<|_j{X3-^qsxuC(q~llZ>z^|^*hhBV)g3eZI=Spzq=iNPuU(GS7tPzj%wADXeofYik39VF zp2@bRrllJ{pZ3%EpVjJ=7X0OM?a%Y-bMo$=iImE5E;nEQ?tXj0)V(4CDz?&A>t4>v zbL5e!*lHtt!D$MoW5tyFbE~WBtLMKy$NcwF0(Z2OPRxBTE6a|hiK`3(Z=Ggu#AsOW5!QAL(`5!H|+{nB_wKhA4^@ZBta`*cuj1r)6eic*7s2>lN}b<9ti&t z98fY{BF(z~(4_=*r>U0`)J>crrmqoF*Wi6-!QR-TXIX#f>k^SAZ5AtQ>b84DZ20!% zNxbE!>idoJwb`rzHH z`?0J$@ZY@~EY~Nk^pX4)#rn_d;7Y;9>rxphqG=d<{omlD{1 z|IV3ne>LCTw%xiw{#8mDgWPmRzW^zohLg8S=PWRhU|1=7y{PF@0z=BRyQet4ni&mB zKc-tcW*RVjir#+`B#;pModM*BGw1W~oagjv{+YkG|COJ^d$Yi+AM*Flb?|C65ZV4` z_GaJrcjaxGCYT)xcv@`!uU4GF{`Zr-mPF;2N3!+BmJIxL-#nMEO;ld;`S&dQ{d^6_ z_m}Ah-BJ*p|F`k;qyMjF+dFu1Cu%I;8xr$r_x5Sqh1PFcY?1Nfp6+phwx;TBJKIma zy`!WeC2{XJ=e&Q{*dN@t3$uE?ceeBmg^DlvWd&#F$G0yyWo-N3rug}O#U)PlE4MH$ zTJ2`}`PBLST@$$Ms{a^ImtSrg1?s&UKE5n_KS0&?599MX`Af#{*l*SEuAL+BNLIZ4 z=B-fg?4k`zE|?wKQ2D<<`OocYHHTY&-t9O4`1d=nGH+;GK8`IG;<#dkfyBU88k{q}L9 z{3+$F)~o*hXk$6FVduwxeOh9Tk$LlL9@wtg`Ko?W&aOL>s)pX39`^z-Jvhl<$Cs$F zt?svX-%|zO^DlCyxIY)S`={5kqg zy;J;-b%>am|7+eH_ItDc8@>K-=6}{tV*LfS;-~00l4UO`3ow4`-G5mk}@0%rO!twn3-BY@@-}`&JSjZvgL7m*6 z)pK+He!D-ffuXK>wcQ`zPqVMho50W#vgZHmGjmu3sviAi5Lvgc+K*|*ANS?{el85h z`mZr9$dmiTdEj_w;q9w}dAqGPJveIm=aHOU%^CY8n-4B~cB0@`xRboyG%3cMw^1@_ z3;iATJ$;(Y$iXmY?ILlhdutEWp3(pKE8-AKL5fAJp47weN3m5e=3m$+x}in!USZ*m zn3}`U&HOXMoj!Os>hr|>{LOseQj6tX7XRtKAFmcZ)P5?|u$^aizp4+zaovW;rcZ7~ zE$hF)ohtjoVs|hDd*=KP(--kCxWyg#Qld!v^t(Irlb-(z3GM&;*4%u0y&t>v_vL?f zzFozOw$4_5A|T z`{hh}flLLbUFTcKR=m^NGxhrUy8W-d@BI5L?Y`nx2fK!=g@L6}&xH>ODKs2S`So-0 zg+oG(`?bUK*-1kE5-YoZiFum6bNZqm1pNBh#amQ+g?$j?U=T!fiA-}oaa1GN>6@&jDE;mlM zxKz2Hf7%w-4L6t^|3ozWbk%wC{oo|EhND6pkJ=Xh`dmN10My6uF+V77CvYUZuKpD$ znh(rn(@9bAi1zNeo!|E}#h^bz$1g#iyV-Rr-i(Qs(pDg3gt`ZQk8qKkc>ty19ip>x!Q{|GxR_ znahy}zZs^PotoItz0m4Ip?CAA`}dNsPI>gJJNxwUT~RE*+n4XZ5UYE9@13jX=IX!Q z`!~Q-OiwUm^O0@kt(~nF>Z_c8TX3^%m=V|DwffNR=#Af>mQ7t0r0DmoW^3{Ds^61$ z&i7uX7ZX%lP<~3Cp`lFTF>EcseWn?f^7eMu)7|cT&w1;&^li+>CsWl{?GLL>3%L1T zFYpJ;hL&1}d*Y1C+}lF+1S=1_Y2Oa*yH~t*ZO(Js_+Fbd>9;j=Y+_Cyxc&dH@UA=G zxz{%QtDCTo|3E)W48xtWQkI5%yJ^uM&Ob~O{Pk(R{fVPnbhpGWtw{V;W4MOp%rvz( zk9C9_uD8T{>@ei`x9Q5CBtu??ee2U1IS%OZ?UHa)lJ^$(dobPp@9c7>2pzQr_FO;0 z8v1{>N4{*0KQaA6Ig{R*E2obOeP`5B`*F(tfAIRF35@5qskioT&SBJ9#{YOZ^Lcx* zZq^s!nsEx;2^(`bpDt(C&t22UT`!uUsMB!tQOW1ajnltfSsCRhB>&lgp}V#4c2rWG z)rZ#^^}Ajk=swD{=1%*e<9{4>uv-2pc~HFj@5^P(`pW_m$`w95|L;A4;a*{3h1;SD z^Z9DNU2eSlFOKI^ysS94pNsb-hCTXCt1CXw<$E)$vCitl&ADlz%b0f`7n{Y9x7*4{ zS^mIwmS+dqA85^)z3=sM=K1qy=*sR`d(?8GD*Kh`_JaK^pjT<`af-#F+^yH$|qGHd_8{RV&c&9Lj2pJ&rA zb|C4eLY#c#`9GiAj|y>eT;0C3ee&(Fd&e#P80r*GTsoF>`_k^yho`1I5I!iW#9%LQ zgx%tF!PPZ}>x<5%ZVlD?)Ojl`J3M#m@m^-je?28LIckI~m_fOGqsFwGcX~blI811r z$+pA(s^`xmZ~d0$rdqGpU-W7DtM=#=TuqD>zUa^X?P0Rqa)zsCHnnbI@C#|Y(atZQeuF8(Cwtv; zX^uz2t@*k?EsobR#Ca!do62A>`{T@V=HC&wB211t-pw(vm#wI~+*tdAWrGIC0bSmw zt@HV6(k?f~CfVBE{nU9tyb#sh3N6m%h`Q-=kuI{9)E?aW=Xzz{PkeypS{hG zuehHna_E(B*m`6+L${(-!8*+Yt3C?0T;Nz)Vf6e=?soGYC0=PoQ75e>Asm^T7q4e- z*uMULze&!LkOYk-8-AYbp3YQoS=3*Vr`06qUEQa%412y`mvi!xR(yNO^6375Z_F8f z9PqVwk>X0cQS*9TG{cX>-|xS)xn3|&d&yb*n#alvHGh)Jr`SzD8@~TjIz!Db-ZV|Z+V>i^xuyQ(Q6n3#a4`G%BO~v`@M2wns9_yCohz@g z{b)eVr@i+d_sQSuG055X=OO!#FWc+RI=gl0|GPK&Y4-d2I++9Eb@G=v5BM?_PF;V= z^UL4#E|)`1HRp~Q9GH;c(WuE9)Fi-H=%O@frDpGxreD7-J|0sOTAbXYax9QbVA97< zk?VN^sjc!7+asYTm?yogN%JbdOgo?3&%O9>+4s7If9~ww|JjluZ|7V6zG#M}zyH7fzw_`$1G}#ig)V07`+D?0 z_kni%|G)dbD&;O&D0u1Fd;3~*2KnE+%M+(`Jkplmn}4nDqv-wPb66g{JN8Ozul1w4 z-<>v&!3u#o`FzT(DVJE8+8n%mFHB+KX-wqc(agx;F|>V^AkGwit;ugCc3@bi5qjsL$7+gEE5@YVZ_D~~s8+@dd! zI{)T7pQ!$8e%HNJJz?w9h57b@3K?8JD-D;ZSXv%!`^qa)%(^Ji@xqiACLvADzhYZV z+%LG!{&mZ0-JU(YfA#&9Li!2<0=BUHT%;s4WkzqQ%CR7u9r4A9-ImE#51zGD*9uMl z_l~`R|IA0zW7GF2q)R`nefr%{o$NNp^$JOsovNDwcqq zTpyaB>ol<)dCVyFm~qqO$|OP0*pN*%kv$8p#C%Eq}=~!I4SbzkBV6_ftTZy8csdk?tgU4Gq4@k3LxF+=2K5hf2gaDU=iO$ZH(?um0)vV_wvq$}*FcbCQgb zjm;*ety&Q&x%Jd)hN-9P|J}LQ-oKgK^01}?>oP@yr7AKLc)s-sny^H#-#4M*+Kg#O zyF^cW@V;MsOyg2frupk|lYsbW_P3`SygAqBFWYJ75PRjpTJyUH9^S3a%v+%-#V5e) zxk#~7ku|78($7KOuI9{Q;SHZ0mZ%*%HBD{StHmuTjM-UDHEM^S6v)rLJJ-dRcO|3L z^{t9gdJWUc4lT4gRHWQ;pVfvn+1cbO`;G^*q&@rJJ?}cLpLG5nW6({(PnGIr3K?9> zx{il4uG0Pg^TWf(I>HXAm-oIqRlM5s)iSu6mN^~_kr18C zU;pm?;p0pK4yh^&t}Xo_vsO|{F7f#}mi7B`iVp5d%iEDBZ5m$2;J83?(fgTCw?#fs z;8BtA?!RBykvuC7Kl(e{9O43;>F>iy%(;PPUOFij2S${S6^UHI4GsL9? zWj65|E-?|{Xc5rRy&xsPwA3U@GiR~%;tw(`)@eJxma?p?ln#$6o}sN*q z4b=4ETyTl=#SaFRl_6}-(pRosnRxa_PfyCmLu}dGa}+*3i!SssvSl%0jP?pwZK&B~IrWCU&Ssmo-0s($d)6*&-Kyo)pQHHR)U`G$v%h#Rosv^A<5!!&#dG}A z-Ttvl*1Xt#d-3k9WB8WGPSjxTH1oLQKu$=*pKf#aHI8So-0R%E5IyJHz9a z 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 WJzX_haV`S`1B0ilpUXO@geCwyrPvw( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.json b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.json new file mode 100644 index 00000000..6c541a38 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.json @@ -0,0 +1,33 @@ +{ + "name": "Vanilla-style", + "description": "A vanilla Minecraft-styled skin, for the purists out there.", + "width": 128, + "height": 36, + "mirror": { + "x": true, + "y": true + }, + "spell_icon_inset": { + "x": 2, + "y": 2 + }, + "text_inset": { + "x": 40, + "y": 18 + }, + "spell_cascade_offset": { + "x": 0, + "y": 8 + }, + "cooldown_bar": { + "x": 40, + "y": 0, + "length": 81, + "height": 5, + "mirror": { + "x": false, + "y": false + }, + "show_when_full": true + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.png b/src/main/resources/assets/ebwizardry/textures/gui/spell_hud/vanilla_style.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6e037bbef7537ec8abf3b7458e55ebf250ad07 GIT binary patch literal 33784 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 z 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