diff --git a/src/main/java/anvil/infinity/abilities/AbilityFastForward.java b/src/main/java/anvil/infinity/abilities/AbilityFastForward.java new file mode 100644 index 0000000..1634526 --- /dev/null +++ b/src/main/java/anvil/infinity/abilities/AbilityFastForward.java @@ -0,0 +1,42 @@ +package anvil.infinity.abilities; + +import lucraft.mods.lucraftcore.superpowers.abilities.AbilityHeld; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class AbilityFastForward extends AbilityHeld { + + World w; + + public AbilityFastForward(EntityLivingBase entity) { + super(entity); + w = entity.getEntityWorld(); + } + + @Override + public void updateTick() { + + long time = w.getWorldTime(); + w.setWorldTime(time + 100); + + } + + @SideOnly(Side.CLIENT) + @Override + public void drawIcon(Minecraft mc, Gui gui, int x, int y) { + float zLevel = Minecraft.getMinecraft().getRenderItem().zLevel; + mc.getRenderItem().zLevel = -100.5F; + GlStateManager.pushMatrix(); + GlStateManager.translate(x, y, 0); + mc.getRenderItem().renderItemIntoGUI(new ItemStack(Items.CLOCK), 0, 0); + GlStateManager.popMatrix(); + mc.getRenderItem().zLevel = zLevel; + } +} diff --git a/src/main/java/anvil/infinity/abilities/AbilityStopTime.java b/src/main/java/anvil/infinity/abilities/AbilityStopTime.java new file mode 100644 index 0000000..e10a6d2 --- /dev/null +++ b/src/main/java/anvil/infinity/abilities/AbilityStopTime.java @@ -0,0 +1,41 @@ +package anvil.infinity.abilities; + +import anvil.infinity.items.Items; +import lucraft.mods.lucraftcore.superpowers.abilities.AbilityToggle; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class AbilityStopTime extends AbilityToggle { + + World w; + + public AbilityStopTime(EntityLivingBase entity) { + super(entity); + w = entity.getEntityWorld(); + } + + @Override + public void updateTick() { + long time = w.getWorldTime(); + w.setWorldTime(time - 1); + + } + + @SideOnly(Side.CLIENT) + @Override + public void drawIcon(Minecraft mc, Gui gui, int x, int y) { + float zLevel = Minecraft.getMinecraft().getRenderItem().zLevel; + mc.getRenderItem().zLevel = -100.5F; + GlStateManager.pushMatrix(); + GlStateManager.translate(x, y, 0); + mc.getRenderItem().renderItemIntoGUI(new ItemStack(Items.TIME_STONE), 0, 0); + GlStateManager.popMatrix(); + mc.getRenderItem().zLevel = zLevel; + } +} diff --git a/src/main/java/anvil/infinity/items/ItemTimeStone.java b/src/main/java/anvil/infinity/items/ItemTimeStone.java index 1f5202a..ea4d14f 100644 --- a/src/main/java/anvil/infinity/items/ItemTimeStone.java +++ b/src/main/java/anvil/infinity/items/ItemTimeStone.java @@ -1,6 +1,8 @@ package anvil.infinity.items; +import anvil.infinity.abilities.AbilityFastForward; import anvil.infinity.abilities.AbilityHasTimeStone; +import anvil.infinity.abilities.AbilityStopTime; import lucraft.mods.lucraftcore.infinity.EnumInfinityStone; import lucraft.mods.lucraftcore.infinity.ModuleInfinity; import lucraft.mods.lucraftcore.infinity.items.ItemInfinityStone; @@ -31,6 +33,8 @@ public class ItemTimeStone extends ItemInfinityStone { @Override public Ability.AbilityMap addStoneAbilities(EntityLivingBase entity, Ability.AbilityMap abilities, Ability.EnumAbilityContext context) { abilities.put("time", new AbilityHasTimeStone(entity)); + abilities.put("fast_forward", new AbilityFastForward(entity)); + abilities.put("stop_time", new AbilityStopTime(entity)); return super.addStoneAbilities(entity, abilities, context); } diff --git a/src/main/java/anvil/infinity/registry/Abilities.java b/src/main/java/anvil/infinity/registry/Abilities.java index 01b9b8a..e2cac44 100644 --- a/src/main/java/anvil/infinity/registry/Abilities.java +++ b/src/main/java/anvil/infinity/registry/Abilities.java @@ -24,6 +24,8 @@ public class Abilities { e.getRegistry().register(new AbilityEntry(AbilityKill.class, new ResourceLocation(Infinity.MOD_ID, "kill"))); e.getRegistry().register(new AbilityEntry(AbilityChangeSnap.class, new ResourceLocation(Infinity.MOD_ID, "changesnap"))); e.getRegistry().register(new AbilityEntry(AbilitySaturation.class, new ResourceLocation(Infinity.MOD_ID, "saturation"))); + e.getRegistry().register(new AbilityEntry(AbilityFastForward.class, new ResourceLocation(Infinity.MOD_ID, "fast_forward"))); + e.getRegistry().register(new AbilityEntry(AbilityStopTime.class, new ResourceLocation(Infinity.MOD_ID, "stop_time"))); }