diff --git a/src/main/java/com/sosnitzka/taiga/Keybindings.java b/src/main/java/com/sosnitzka/taiga/Keybindings.java new file mode 100644 index 0000000..316a2a5 --- /dev/null +++ b/src/main/java/com/sosnitzka/taiga/Keybindings.java @@ -0,0 +1,9 @@ +package com.sosnitzka.taiga; + +import net.minecraft.client.settings.KeyBinding; +import org.lwjgl.input.Keyboard; + +public class Keybindings { + public static KeyBinding altKey = new KeyBinding("key.taiga.alt_action", Keyboard.KEY_LCONTROL, "TAIGA"); + +} diff --git a/src/main/java/com/sosnitzka/taiga/TAIGA.java b/src/main/java/com/sosnitzka/taiga/TAIGA.java index fff7321..2c6871f 100644 --- a/src/main/java/com/sosnitzka/taiga/TAIGA.java +++ b/src/main/java/com/sosnitzka/taiga/TAIGA.java @@ -58,6 +58,7 @@ public class TAIGA { @EventHandler public void init(FMLInitializationEvent e) { proxy.registerModels(); // Registers models on the client side + proxy.regsiterKeyBindings(); Fluids.registerfromItem(); // Registers some special smeltery recipes (not alloying) GameRegistry.registerWorldGenerator(WorldGen.getInstance(), 100); // Generates ores diff --git a/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java b/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java index b48fd2c..8e483b1 100644 --- a/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java +++ b/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java @@ -17,6 +17,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fml.client.registry.ClientRegistry; import slimeknights.mantle.client.book.repository.FileRepository; import slimeknights.tconstruct.library.book.TinkerBook; import slimeknights.tconstruct.library.client.MaterialRenderInfo; @@ -27,6 +28,7 @@ import javax.annotation.Nonnull; import java.lang.reflect.Field; import static com.sosnitzka.taiga.Fluids.*; +import static com.sosnitzka.taiga.Keybindings.altKey; import static com.sosnitzka.taiga.MaterialTraits.*; import static slimeknights.mantle.client.book.BookLoader.registerPageType; @@ -41,6 +43,11 @@ public class ClientProxy extends CommonProxy { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")); } + @Override + public void regsiterKeyBindings() { + ClientRegistry.registerKeyBinding(altKey); + } + @Override public void registerModels() { Field[] itemFields = Items.class.getDeclaredFields(); diff --git a/src/main/java/com/sosnitzka/taiga/proxy/CommonProxy.java b/src/main/java/com/sosnitzka/taiga/proxy/CommonProxy.java index 0ae4808..196676f 100644 --- a/src/main/java/com/sosnitzka/taiga/proxy/CommonProxy.java +++ b/src/main/java/com/sosnitzka/taiga/proxy/CommonProxy.java @@ -27,4 +27,8 @@ public class CommonProxy { public void registerBookPages() { } + + public void regsiterKeyBindings() { + + } } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java index b255b0f..0410547 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java @@ -16,6 +16,8 @@ import slimeknights.tconstruct.library.utils.TagUtil; import slimeknights.tconstruct.library.utils.TinkerUtil; import slimeknights.tconstruct.library.utils.ToolHelper; +import static com.sosnitzka.taiga.Keybindings.altKey; + public class TraitBerserk extends TraitProgressiveStats { @@ -53,11 +55,10 @@ public class TraitBerserk extends TraitProgressiveStats { NBTTagCompound root = TagUtil.getTagSafe(tool); StatNBT distributed = getBonus(root); if (data.active) { - TagUtil.setEnchantEffect(root, true); - if (entity instanceof FakePlayer) { - return; - } - if (entity.ticksExisted % TICK_PER_STAT > 0) { + if (!TagUtil.hasEnchantEffect(root)) + TagUtil.setEnchantEffect(root, true); + + if (entity instanceof FakePlayer || entity.ticksExisted % TICK_PER_STAT != 0) { return; } @@ -69,7 +70,10 @@ public class TraitBerserk extends TraitProgressiveStats { ToolHelper.damageTool(tool, 1, player); TagUtil.setToolTag(root, stat.get()); setBonus(root, distributed); - } else TagUtil.setEnchantEffect(root, false); + } else { + if (TagUtil.hasEnchantEffect(root)) + TagUtil.setEnchantEffect(root, false); + } } } @@ -77,7 +81,7 @@ public class TraitBerserk extends TraitProgressiveStats { public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { World w = event.getWorld(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); - if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { + if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && altKey.isKeyDown()) { NBTTagCompound tag = TagUtil.getExtraTag(tool); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); NBTTagCompound root = TagUtil.getTagSafe(tool); @@ -99,7 +103,6 @@ public class TraitBerserk extends TraitProgressiveStats { TagUtil.setExtraTag(root, tag); data.write(tag); } - } } } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java index 1f17b46..e84f2fc 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java @@ -23,6 +23,8 @@ import slimeknights.tconstruct.library.utils.TagUtil; import slimeknights.tconstruct.library.utils.TinkerUtil; import slimeknights.tconstruct.library.utils.ToolHelper; +import static com.sosnitzka.taiga.Keybindings.altKey; + public class TraitCatcher extends AbstractTrait { @@ -81,7 +83,7 @@ public class TraitCatcher extends AbstractTrait { World w = event.getWorld(); BlockPos pos = event.getEntityPlayer().getPosition(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); - if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { + if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && altKey.isKeyDown()) { NBTTagCompound tag = TagUtil.getExtraTag(tool); Data data = Data.read(tag); if (!data.mobClass.isEmpty()) { diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java b/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java index c563fdc..8696303 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java @@ -24,7 +24,6 @@ public class TraitHollow extends AbstractTrait { MinecraftForge.EVENT_BUS.register(this); } - @Override public void onHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean isCritical) { diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitMelting.java b/src/main/java/com/sosnitzka/taiga/traits/TraitMelting.java index bae815f..4540d3e 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitMelting.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitMelting.java @@ -18,7 +18,6 @@ public class TraitMelting extends AbstractTrait { MinecraftForge.EVENT_BUS.register(this); } - @SubscribeEvent public void blockbreak(BlockEvent.BreakEvent e) { Block b = e.getWorld().getBlockState(e.getPos()).getBlock(); diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitMutate.java b/src/main/java/com/sosnitzka/taiga/traits/TraitMutate.java index a6e2e4e..6830cda 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitMutate.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitMutate.java @@ -15,8 +15,6 @@ import static com.google.common.collect.Lists.newArrayList; public class TraitMutate extends AbstractTrait { - - public TraitMutate() { super(TraitMutate.class.getSimpleName().toLowerCase().substring(5), TextFormatting.YELLOW); MinecraftForge.EVENT_BUS.register(this); @@ -37,7 +35,6 @@ public class TraitMutate extends AbstractTrait { } } - } } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java b/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java index 53f4d86..c9a0313 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java @@ -12,7 +12,6 @@ import slimeknights.tconstruct.library.utils.ToolHelper; public class TraitNatureBound extends AbstractTrait { - public TraitNatureBound() { super("naturebound", TextFormatting.GREEN); MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitPorted.java b/src/main/java/com/sosnitzka/taiga/traits/TraitPorted.java index 25d1a4c..ca95f04 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitPorted.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitPorted.java @@ -1,5 +1,6 @@ package com.sosnitzka.taiga.traits; +import com.sosnitzka.taiga.Keybindings; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; @@ -28,7 +29,7 @@ public class TraitPorted extends AbstractTrait { @SubscribeEvent public void onItemRightClick(PlayerInteractEvent.RightClickItem e) { ItemStack tool = e.getEntityPlayer().getHeldItemMainhand(); - if (TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) + if (TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown()) teleport(e.getEntityPlayer(), e.getWorld()); } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitTantrum.java b/src/main/java/com/sosnitzka/taiga/traits/TraitTantrum.java index 77630b1..0d70130 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitTantrum.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitTantrum.java @@ -1,5 +1,6 @@ package com.sosnitzka.taiga.traits; +import com.sosnitzka.taiga.Keybindings; import com.sosnitzka.taiga.util.Utils; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; @@ -61,11 +62,11 @@ public class TraitTantrum extends AbstractTrait { } @SubscribeEvent - public void RightClickItem(PlayerInteractEvent.RightClickItem event) { + public void rightClickItem(PlayerInteractEvent.RightClickItem event) { World w = event.getWorld(); BlockPos pos = event.getPos(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); - if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { + if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown()) { NBTTagCompound tag = TagUtil.getExtraTag(tool); Data data = Data.read(tag); if (data.amount > 1f) { diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitWhirl.java b/src/main/java/com/sosnitzka/taiga/traits/TraitWhirl.java index 41dc284..fd57471 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitWhirl.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitWhirl.java @@ -1,5 +1,6 @@ package com.sosnitzka.taiga.traits; +import com.sosnitzka.taiga.Keybindings; import com.sosnitzka.taiga.util.Utils; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; @@ -55,7 +56,7 @@ public class TraitWhirl extends AbstractTrait { public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { World w = event.getWorld(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); - if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { + if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown()) { NBTTagCompound tag = TagUtil.getExtraTag(tool); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); if ((int) data.radius >= 1) { diff --git a/src/main/resources/assets/taiga/lang/en_US.lang b/src/main/resources/assets/taiga/lang/en_US.lang index b6de37b..10be8df 100644 --- a/src/main/resources/assets/taiga/lang/en_US.lang +++ b/src/main/resources/assets/taiga/lang/en_US.lang @@ -351,8 +351,8 @@ modifier.whirl.name=Whirl modifier.whirl.desc=§oLike a sponge!§r\nRemove water at a gained radius. modifier.souleater.name=Soul Eater modifier.souleater.desc=§oKill a lot, be a veteran§r\nIf you kill a lot of enemies, your weapon will get stronger. -modifier.beserk.name=BESERK -modifier.beserk.desc=§oBecome the Hulk!§r\nActivate the life consumption and be three times faster and stronger. +modifier.berserk.name=BESERK +modifier.berserk.desc=§oBecome the Hulk!§r\nActivate the life consumption and be three times faster and stronger. modifier.tantrum.name=Tantrum modifier.tantrum.desc=§oCast an explosion!§r\nIf you activate the stacked explosion you won't get hurt. modifier.decay.name=Decay @@ -366,4 +366,6 @@ modifier.crushing.desc=WIP gui.taiga_configuration.mainTitle=TAIGA Configuration itemGroup.taiga_block=TAIGA Blocks -itemGroup.taiga_item=TAIGA Items \ No newline at end of file +itemGroup.taiga_item=TAIGA Items + +key.taiga.alt_action=Mod Tool \ No newline at end of file