Added Time Stone abilities

This commit is contained in:
Timo Ley 2019-05-30 13:49:35 +02:00
parent 0eb8b089b4
commit c794e0a1c9
4 changed files with 89 additions and 0 deletions

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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")));
}