aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/kubatech/client/effect/EntityRenderer.java9
-rw-r--r--src/main/java/kubatech/loaders/MobHandlerLoader.java11
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java2
3 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/kubatech/client/effect/EntityRenderer.java b/src/main/java/kubatech/client/effect/EntityRenderer.java
index 247b6ba788..42c233cddd 100644
--- a/src/main/java/kubatech/client/effect/EntityRenderer.java
+++ b/src/main/java/kubatech/client/effect/EntityRenderer.java
@@ -105,7 +105,12 @@ public class EntityRenderer extends EntityFX {
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
entityToRender.worldObj = this.worldObj;
- entityToRender.setPosition(this.posX, this.posY, this.posZ);
+
+ // quiver still bugged a bit, but it is on the skeleton now
+ entityToRender.setPosition(this.posX, this.posY + 1d /* for some reason quiver renders too low? */, this.posZ);
+ entityToRender.lastTickPosX = entityToRender.posX;
+ entityToRender.lastTickPosY = entityToRender.posY;
+ entityToRender.lastTickPosZ = entityToRender.posZ;
Minecraft mc = Minecraft.getMinecraft();
@@ -164,6 +169,8 @@ public class EntityRenderer extends EntityFX {
(float) (this.posY - renderPosY),
(float) (this.posZ - renderPosZ));
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
+
+ // TODO: Use new scale calculator
float desiredScale = MobUtils.getDesiredScale(entityToRender, 2f);
if (desiredScale < 1f) GL11.glScalef(desiredScale, desiredScale, desiredScale);
diff --git a/src/main/java/kubatech/loaders/MobHandlerLoader.java b/src/main/java/kubatech/loaders/MobHandlerLoader.java
index 72947c726d..c56c397308 100644
--- a/src/main/java/kubatech/loaders/MobHandlerLoader.java
+++ b/src/main/java/kubatech/loaders/MobHandlerLoader.java
@@ -23,6 +23,7 @@ package kubatech.loaders;
import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.DIAMOND_SPIKES_DAMAGE;
import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.MOB_SPAWN_INTERVAL;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -37,6 +38,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.JsonToNBT;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import org.apache.logging.log4j.LogManager;
@@ -83,10 +85,19 @@ public class MobHandlerLoader {
public final int mEUt = 2000;
public final int mDuration;
+ public final EntityLiving entityCopy;
public MobEECRecipe(List<MobDrop> transformedDrops, MobRecipe recipe) {
this.mOutputs = transformedDrops;
this.recipe = recipe;
+ try {
+ this.entityCopy = this.recipe.entity.getClass()
+ .getConstructor(World.class)
+ .newInstance(this.recipe.entity.worldObj);
+ } catch (NoSuchMethodException | InvocationTargetException | InstantiationException
+ | IllegalAccessException e) {
+ throw new RuntimeException(e);
+ }
mDuration = Math.max(MOB_SPAWN_INTERVAL, (int) ((recipe.maxEntityHealth / DIAMOND_SPIKES_DAMAGE) * 10d));
}
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
index 38a50ee1f9..bea621232f 100644
--- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
@@ -375,7 +375,7 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber
MobHandlerLoader.MobEECRecipe r = MobHandlerLoader.recipeMap.get(mobType);
if (r != null) {
if (entityRenderer == null) setupEntityRenderer(getBaseMetaTileEntity(), 40);
- entityRenderer.setEntity(r.recipe.entity);
+ entityRenderer.setEntity(r.entityCopy);
} else entityRenderer.setEntity(null);
} else {
renderEntity = false;