Skip to content

Commit

Permalink
Refactor DS upgrade classes, add system for upgrade rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
tterrag1098 committed May 6, 2015
1 parent 23a8a8b commit 66de4cf
Show file tree
Hide file tree
Showing 27 changed files with 309 additions and 99 deletions.
6 changes: 3 additions & 3 deletions src/main/java/crazypants/enderio/item/KeyTracker.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
import crazypants.enderio.item.PacketMagnetState.SlotType;
import crazypants.enderio.item.darksteel.DarkSteelController;
import crazypants.enderio.item.darksteel.DarkSteelItems;
import crazypants.enderio.item.darksteel.JumpUpgrade;
import crazypants.enderio.item.darksteel.PacketUpgradeState;
import crazypants.enderio.item.darksteel.SoundDetector;
import crazypants.enderio.item.darksteel.SoundDetectorUpgrade;
import crazypants.enderio.item.darksteel.SpeedUpgrade;
import crazypants.enderio.item.darksteel.upgrade.JumpUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SoundDetectorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpeedUpgrade;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.thaumcraft.GogglesOfRevealingUpgrade;
import crazypants.util.BaublesUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovementInput;
import net.minecraftforge.client.event.RenderPlayerEvent;

import org.lwjgl.opengl.GL11;

import cofh.api.energy.IEnergyContainerItem;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
Expand All @@ -23,6 +28,15 @@
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.config.Config;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.GliderUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IRenderUpgrade;
import crazypants.enderio.item.darksteel.upgrade.JumpUpgrade;
import crazypants.enderio.item.darksteel.upgrade.NightVisionUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SolarUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpeedUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SwimUpgrade;
import crazypants.enderio.machine.solar.TileEntitySolarPanel;
import crazypants.enderio.network.PacketHandler;
import crazypants.util.Util;
Expand Down Expand Up @@ -263,16 +277,16 @@ private void updateSpeed(EntityPlayer player) {

double horzMovement = Math.abs(player.distanceWalkedModified - player.prevDistanceWalkedModified);
double costModifier = player.isSprinting() ? Config.darkSteelSprintPowerCost : Config.darkSteelWalkPowerCost;
costModifier = costModifier + (costModifier * speedUpgrade.walkMultiplier);
costModifier = costModifier + (costModifier * speedUpgrade.getWalkMultiplier());
int cost = (int) (horzMovement * costModifier);
int totalEnergy = getPlayerEnergy(player, DarkSteelItems.itemDarkSteelLeggings);

if(totalEnergy > 0) {
usePlayerEnergy(player, DarkSteelItems.itemDarkSteelLeggings, cost);
if(player.isSprinting()) {
moveInst.applyModifier(sprintModifiers[speedUpgrade.level - 1]);
moveInst.applyModifier(sprintModifiers[speedUpgrade.getLevel() - 1]);
} else {
moveInst.applyModifier(walkModifiers[speedUpgrade.level - 1]);
moveInst.applyModifier(walkModifiers[speedUpgrade.getLevel() - 1]);
}
}
}
Expand Down Expand Up @@ -367,11 +381,56 @@ public void onClientTick(TickEvent.ClientTickEvent event) {
jumpCount = 0;
}
ticksSinceLastJump++;

updateNightvision(player);
}


}

@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onPlayerRender(RenderPlayerEvent.Specials.Post event) {
if (event.entityLiving.getActivePotionEffect(Potion.invisibility) != null) {
return;
}

EntityPlayer player = event.entityPlayer;
ItemStack[] armors = player.inventory.armorInventory;

dispatchRenders(armors, event, false);

float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick;
float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick;
float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick;

GL11.glPushMatrix();
GL11.glRotatef(yawOffset, 0, -1, 0);
GL11.glRotatef(yaw - 270, 0, 1, 0);
GL11.glRotatef(pitch, 0, 0, 1);
dispatchRenders(armors, event, true);
GL11.glPopMatrix();
}

private void dispatchRenders(ItemStack[] armors, RenderPlayerEvent event, boolean head) {
for (int i = 0; i < armors.length; i++) {
ItemStack stack = armors[i];
if (stack != null) {
Item item = stack.getItem();

if (item instanceof IDarkSteelItem) {
for (IDarkSteelUpgrade upg : DarkSteelRecipeManager.instance.getUpgrades()) {
if (upg.hasUpgrade(stack)) {
GL11.glPushMatrix();
GL11.glColor4f(1F, 1F, 1F, 1F);
IRenderUpgrade render = upg.getRender();
if (render != null) {
upg.getRender().render(event, stack, head);
}
GL11.glPopMatrix();
}
}
}
}
}
}

@SideOnly(Side.CLIENT)
Expand All @@ -386,7 +445,7 @@ private void doJump(EntityClientPlayerMP player) {

int requiredPower = Config.darkSteelBootsJumpPowerCost * (int) Math.pow(jumpCount + 1, 2.5);
int availablePower = getPlayerEnergy(player, DarkSteelItems.itemDarkSteelBoots);
if(availablePower > 0 && requiredPower <= availablePower && jumpCount < jumpUpgrade.level) {
if(availablePower > 0 && requiredPower <= availablePower && jumpCount < jumpUpgrade.getLevel()) {
jumpCount++;
player.motionY += 0.15 * Config.darkSteelBootsJumpModifier * jumpCount;
ticksSinceLastJump = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,19 @@
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import crazypants.enderio.EnderIO;
import crazypants.enderio.item.darksteel.upgrade.ApiaristArmorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.GliderUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import crazypants.enderio.item.darksteel.upgrade.JumpUpgrade;
import crazypants.enderio.item.darksteel.upgrade.NaturalistEyeUpgrade;
import crazypants.enderio.item.darksteel.upgrade.NightVisionUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SolarUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SoundDetectorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpeedUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpoonUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SwimUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TravelUpgrade;
import crazypants.enderio.material.Alloy;
import crazypants.enderio.thaumcraft.GogglesOfRevealingUpgrade;
import crazypants.enderio.thaumcraft.ThaumcraftCompat;
Expand Down
52 changes: 0 additions & 52 deletions src/main/java/crazypants/enderio/item/darksteel/GliderUpgrade.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IAdvancedTooltipProvider;
import crazypants.enderio.item.darksteel.upgrade.ApiaristArmorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import crazypants.enderio.item.darksteel.upgrade.NaturalistEyeUpgrade;
import crazypants.enderio.thaumcraft.GogglesOfRevealingUpgrade;
import crazypants.util.ItemUtil;
import crazypants.util.Lang;
Expand Down Expand Up @@ -61,6 +65,7 @@ public class ItemDarkSteelArmor extends ItemArmor implements IEnergyContainerIte

static {
FMLCommonHandler.instance().bus().register(DarkSteelController.instance);
MinecraftForge.EVENT_BUS.register(DarkSteelController.instance);
MinecraftForge.EVENT_BUS.register(DarkSteelRecipeManager.instance);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IAdvancedTooltipProvider;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.machine.farm.farmers.HarvestResult;
import crazypants.enderio.machine.farm.farmers.TreeHarvestUtil;
import crazypants.util.BlockCoord;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
import crazypants.enderio.api.teleport.TravelSource;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IAdvancedTooltipProvider;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpoonUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TravelUpgrade;
import crazypants.enderio.machine.power.PowerDisplayUtil;
import crazypants.enderio.teleport.TravelController;
import crazypants.util.ItemUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IAdvancedTooltipProvider;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.machine.farm.farmers.HarvestResult;
import crazypants.util.BlockCoord;
import crazypants.util.ItemUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
import crazypants.enderio.api.teleport.TravelSource;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IAdvancedTooltipProvider;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TravelUpgrade;
import crazypants.enderio.teleport.TravelController;
import crazypants.util.ItemUtil;
import crazypants.util.Lang;
Expand Down Expand Up @@ -293,7 +295,7 @@ public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingB
if(eu != null) {
eu.writeToItem(sword);

if(eu.energy > Config.darkSteelSwordPowerUsePerHit) {
if(eu.getEnergy() > Config.darkSteelSwordPowerUsePerHit) {
extractEnergy(player.getCurrentEquippedItem(), Config.darkSteelSwordPowerUsePerHit, false);
String name = EntityList.getEntityString(entity);
if(entity instanceof EntityEnderman || ENDERZOO_ENDERMINY.equals(name)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.lwjgl.opengl.GL11;

import cofh.api.energy.IEnergyContainerItem;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.render.ColorUtil;
import crazypants.render.RenderUtil;
import crazypants.vecmath.Vector4f;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package crazypants.enderio.item.darksteel;
package crazypants.enderio.item.darksteel.upgrade;

import java.util.List;

Expand Down Expand Up @@ -90,6 +90,11 @@ public int getLevelCost() {
public String getUnlocalizedName() {
return unlocName;
}

@Override
public IRenderUpgrade getRender() {
return null;
}

@Override
public boolean hasUpgrade(ItemStack stack) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package crazypants.enderio.item.darksteel;
package crazypants.enderio.item.darksteel.upgrade;

import cpw.mods.fml.common.registry.GameRegistry;
import crazypants.enderio.config.Config;
import crazypants.enderio.item.darksteel.ItemDarkSteelArmor;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package crazypants.enderio.item.darksteel;
package crazypants.enderio.item.darksteel.upgrade;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -13,6 +13,7 @@
import crazypants.enderio.EnderIO;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.TooltipAddera;
import crazypants.enderio.item.darksteel.IDarkSteelItem;
import crazypants.enderio.machine.power.PowerDisplayUtil;
import crazypants.enderio.material.Material;
import crazypants.util.Lang;
Expand Down
Loading

0 comments on commit 66de4cf

Please sign in to comment.