BlockSkinRenderHelper represents colors as colors
This commit is contained in:
parent
cc15bc7578
commit
5bf2eac646
@ -37,7 +37,7 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
|
||||
* @dependencies: IC2 API
|
||||
*/
|
||||
|
||||
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.3.12", dependencies = "required-after:Forge@[7.7.1.675,)")
|
||||
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.3.14", dependencies = "required-after:Forge@[7.7.1.675,)")
|
||||
@NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.util.network.TPacketHandler.class)
|
||||
public class TConstruct
|
||||
{
|
||||
@ -105,6 +105,7 @@ public class TConstruct
|
||||
MinecraftForge.EVENT_BUS.register(playerTracker);
|
||||
|
||||
content.modIntegration();
|
||||
content.createEntities();
|
||||
}
|
||||
|
||||
public static LiquidCasting getTableCasting()
|
||||
|
@ -1,25 +1,35 @@
|
||||
package mods.tinker.tconstruct.client;
|
||||
|
||||
import mods.tinker.tconstruct.TConstruct;
|
||||
import mods.tinker.tconstruct.client.armor.WingModel;
|
||||
import mods.tinker.tconstruct.common.TContent;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.client.renderer.entity.RenderPlayer;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.client.event.sound.SoundLoadEvent;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.liquids.LiquidStack;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class TClientEvents
|
||||
{
|
||||
/* Sounds */
|
||||
@ForgeSubscribe
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onSound (SoundLoadEvent event)
|
||||
{
|
||||
try
|
||||
{
|
||||
event.manager.soundPoolSounds.addSound("mods/tinker/resources/sounds/frypan_hit.ogg", TConstruct.class.getResource("/mods/tinker/resources/sounds/frypan_hit.ogg"));
|
||||
event.manager.soundPoolSounds.addSound("mods/tinker/resources/sounds/little_saw.ogg", TConstruct.class.getResource("/mods/tinker/resources/sounds/little_saw.ogg"));
|
||||
event.manager.soundPoolSounds.addSound("sounds/frypan_hit.ogg", TConstruct.class.getResource("/sounds/frypan_hit.ogg"));
|
||||
event.manager.soundPoolSounds.addSound("sounds/little_saw.ogg", TConstruct.class.getResource("/sounds/little_saw.ogg"));
|
||||
System.out.println("[TConstruct] Successfully loaded sounds.");
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -30,7 +40,6 @@ public class TClientEvents
|
||||
|
||||
/* Liquids */
|
||||
@ForgeSubscribe
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void postStitch (TextureStitchEvent.Post event)
|
||||
{
|
||||
for (int i = 0; i < TContent.liquidIcons.length; i++)
|
||||
@ -41,4 +50,35 @@ public class TClientEvents
|
||||
canon.setRenderingIcon(TContent.liquidMetalStill.getIcon(0, i));
|
||||
}
|
||||
}
|
||||
|
||||
/* Armor */
|
||||
ModelBiped model = new ModelBiped(5f);
|
||||
WingModel wings = new WingModel();
|
||||
|
||||
/*static
|
||||
{
|
||||
model.bipedHead.showModel = false;
|
||||
}*/
|
||||
|
||||
private float interpolateRotation (float par1, float par2, float par3)
|
||||
{
|
||||
float f3;
|
||||
|
||||
for (f3 = par2 - par1; f3 < -180.0F; f3 += 360.0F)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
while (f3 >= 180.0F)
|
||||
{
|
||||
f3 -= 360.0F;
|
||||
}
|
||||
|
||||
return par1 + par3 * f3;
|
||||
}
|
||||
|
||||
protected float handleRotationFloat (EntityLiving par1EntityLiving, float par2)
|
||||
{
|
||||
return (float) par1EntityLiving.ticksExisted + par2;
|
||||
}
|
||||
}
|
||||
|
@ -10,26 +10,67 @@ import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import mods.tinker.tconstruct.TConstruct;
|
||||
import mods.tinker.tconstruct.blocks.logic.*;
|
||||
import mods.tinker.tconstruct.client.block.*;
|
||||
import mods.tinker.tconstruct.client.entity.*;
|
||||
import mods.tinker.tconstruct.client.entity.projectile.*;
|
||||
import mods.tinker.tconstruct.client.gui.*;
|
||||
import mods.tinker.tconstruct.common.*;
|
||||
import mods.tinker.tconstruct.entity.*;
|
||||
import mods.tinker.tconstruct.entity.projectile.*;
|
||||
import mods.tinker.tconstruct.items.tools.*;
|
||||
import mods.tinker.tconstruct.library.*;
|
||||
import mods.tinker.tconstruct.library.client.*;
|
||||
import mods.tinker.tconstruct.library.crafting.*;
|
||||
import mods.tinker.tconstruct.library.tools.*;
|
||||
import mods.tinker.tconstruct.util.PHConstruct;
|
||||
import mods.tinker.tconstruct.util.player.*;
|
||||
import mods.tinker.tconstruct.worldgen.OverworldProvider;
|
||||
import mods.tinker.tconstruct.blocks.logic.CastingBasinLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.CastingTableLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.FrypanLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.GolemCoreLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.PartCrafterLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.PatternChestLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.PatternShaperLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.SmelteryLogic;
|
||||
import mods.tinker.tconstruct.blocks.logic.ToolStationLogic;
|
||||
import mods.tinker.tconstruct.client.block.CastingBasinSpecialRender;
|
||||
import mods.tinker.tconstruct.client.block.CastingTableSpecialRenderer;
|
||||
import mods.tinker.tconstruct.client.block.FluidRender;
|
||||
import mods.tinker.tconstruct.client.block.FrypanRender;
|
||||
import mods.tinker.tconstruct.client.block.GolemCoreRender;
|
||||
import mods.tinker.tconstruct.client.block.GolemCoreSpecialRender;
|
||||
import mods.tinker.tconstruct.client.block.OreberryRender;
|
||||
import mods.tinker.tconstruct.client.block.SearedRender;
|
||||
import mods.tinker.tconstruct.client.block.SmallFontRenderer;
|
||||
import mods.tinker.tconstruct.client.block.SmelteryRender;
|
||||
import mods.tinker.tconstruct.client.block.TableRender;
|
||||
import mods.tinker.tconstruct.client.block.TankRender;
|
||||
import mods.tinker.tconstruct.client.entity.CartRender;
|
||||
import mods.tinker.tconstruct.client.entity.CloneHeadModel;
|
||||
import mods.tinker.tconstruct.client.entity.CrystalRender;
|
||||
import mods.tinker.tconstruct.client.entity.FancyItemRender;
|
||||
import mods.tinker.tconstruct.client.entity.GolemRender;
|
||||
import mods.tinker.tconstruct.client.entity.SkylaRender;
|
||||
import mods.tinker.tconstruct.client.entity.SlimeCloneRender;
|
||||
import mods.tinker.tconstruct.client.entity.SlimeRender;
|
||||
import mods.tinker.tconstruct.client.entity.projectile.DaggerRender;
|
||||
import mods.tinker.tconstruct.client.entity.projectile.LaunchedItemRender;
|
||||
import mods.tinker.tconstruct.client.gui.ArmorExtendedGui;
|
||||
import mods.tinker.tconstruct.client.gui.FrypanGui;
|
||||
import mods.tinker.tconstruct.client.gui.GuiManual;
|
||||
import mods.tinker.tconstruct.client.gui.PartCrafterGui;
|
||||
import mods.tinker.tconstruct.client.gui.PatternChestGui;
|
||||
import mods.tinker.tconstruct.client.gui.PatternShaperGui;
|
||||
import mods.tinker.tconstruct.client.gui.SmelteryGui;
|
||||
import mods.tinker.tconstruct.client.gui.ToolStationGui;
|
||||
import mods.tinker.tconstruct.common.TContent;
|
||||
import mods.tinker.tconstruct.common.TProxyCommon;
|
||||
import mods.tinker.tconstruct.entity.BlueSlime;
|
||||
import mods.tinker.tconstruct.entity.CartEntity;
|
||||
import mods.tinker.tconstruct.entity.Crystal;
|
||||
import mods.tinker.tconstruct.entity.FancyEntityItem;
|
||||
import mods.tinker.tconstruct.entity.GolemBase;
|
||||
import mods.tinker.tconstruct.entity.NitroCreeper;
|
||||
import mods.tinker.tconstruct.entity.Skyla;
|
||||
import mods.tinker.tconstruct.entity.SlimeClone;
|
||||
import mods.tinker.tconstruct.entity.projectile.DaggerEntity;
|
||||
import mods.tinker.tconstruct.entity.projectile.LaunchedPotion;
|
||||
import mods.tinker.tconstruct.items.tools.Dagger;
|
||||
import mods.tinker.tconstruct.library.TConstructRegistry;
|
||||
import mods.tinker.tconstruct.library.client.TConstructClientRegistry;
|
||||
import mods.tinker.tconstruct.library.client.ToolGuiElement;
|
||||
import mods.tinker.tconstruct.library.crafting.ToolBuilder;
|
||||
import mods.tinker.tconstruct.library.tools.ToolCore;
|
||||
import mods.tinker.tconstruct.util.player.ArmorExtended;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.inventory.GuiInventory;
|
||||
import net.minecraft.client.model.ModelSlime;
|
||||
import net.minecraft.client.particle.EntityAuraFX;
|
||||
import net.minecraft.client.particle.EntityBreakingFX;
|
||||
@ -67,8 +108,6 @@ import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import net.minecraftforge.common.DimensionManager;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
@ -199,15 +238,6 @@ public class TProxyClient extends TProxyCommon
|
||||
//RenderingRegistry.registerBlockHandler(new BrickRender());
|
||||
//RenderingRegistry.registerBlockHandler(new BallRepeaterRender());
|
||||
|
||||
//Tools
|
||||
/*IItemRenderer render = new SuperCustomToolRenderer();
|
||||
for (ToolCore tool : TConstructRegistry.tools)
|
||||
{
|
||||
MinecraftForgeClient.registerItemRenderer(tool.itemID, render);
|
||||
}*/
|
||||
|
||||
//MinecraftForgeClient.registerItemRenderer(TContent.chisel.itemID, new ChiselRotator());
|
||||
|
||||
//Special Renderers
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(CastingTableLogic.class, new CastingTableSpecialRenderer());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(GolemCoreLogic.class, new GolemCoreSpecialRender());
|
||||
@ -217,6 +247,7 @@ public class TProxyClient extends TProxyCommon
|
||||
RenderingRegistry.registerEntityRenderingHandler(FancyEntityItem.class, new FancyItemRender());
|
||||
RenderingRegistry.registerEntityRenderingHandler(NitroCreeper.class, new RenderCreeper());
|
||||
RenderingRegistry.registerEntityRenderingHandler(BlueSlime.class, new SlimeRender(new ModelSlime(16), new ModelSlime(0), 0.25F));
|
||||
RenderingRegistry.registerEntityRenderingHandler(SlimeClone.class, new SlimeCloneRender(new CloneHeadModel(0), new CloneHeadModel(1f), 0.25F));
|
||||
RenderingRegistry.registerEntityRenderingHandler(GolemBase.class, new GolemRender(0));
|
||||
|
||||
RenderingRegistry.registerEntityRenderingHandler(CartEntity.class, new CartRender());
|
||||
|
123
mods/tinker/tconstruct/client/armor/WingModel.java
Normal file
123
mods/tinker/tconstruct/client/armor/WingModel.java
Normal file
@ -0,0 +1,123 @@
|
||||
package mods.tinker.tconstruct.client.armor;
|
||||
|
||||
import mods.tinker.tconstruct.client.tmt.ModelRendererTurbo;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
public class WingModel extends ModelBase
|
||||
{
|
||||
ModelRenderer WingBaseRight;
|
||||
ModelRenderer WingEdgeRight;
|
||||
ModelRenderer WingInsetRight;
|
||||
ModelRenderer WingCenterRight;
|
||||
ModelRenderer WingFlangeRight;
|
||||
ModelRenderer WingAuxRight;
|
||||
ModelRenderer WingBaseLeft;
|
||||
ModelRenderer WingEdgeLeft;
|
||||
ModelRenderer WingInsetLeft;
|
||||
ModelRenderer WingCenterLeft;
|
||||
ModelRenderer WingFlangeLeft;
|
||||
ModelRenderer WingAuxLeft;
|
||||
|
||||
public WingModel()
|
||||
{
|
||||
textureWidth = 64;
|
||||
textureHeight = 64;
|
||||
|
||||
//Right Wing
|
||||
WingBaseRight = new ModelRenderer(this, 0, 41);
|
||||
WingBaseRight.addBox(-0.5F, -1F, 0F, 1, 2, 10);
|
||||
WingBaseRight.setRotationPoint(-1F, 1F, 0F);
|
||||
setRotation(WingBaseRight, 0.5235988F, -0.5235988F, 0F);
|
||||
|
||||
WingEdgeRight = new ModelRenderer(this, 0, 53); //Texture position
|
||||
WingEdgeRight.addBox(0F, 0F, -2F, 1, 9, 2); //Offset, Size
|
||||
WingEdgeRight.setRotationPoint(-0.502F, -1F, 10F); //Negative x, y - 1, Position
|
||||
setRotation(WingEdgeRight, 0.5235988F, 0F, 0F); //Angle in radians
|
||||
|
||||
WingInsetRight = new ModelRenderer(this, 6, 53);
|
||||
WingInsetRight.addBox(0F, 0F, -1F, 1, 9, 2);
|
||||
WingInsetRight.setRotationPoint(-0.504F, 0F, 7.8F);
|
||||
setRotation(WingInsetRight, 0.3490659F, 0F, 0F);
|
||||
|
||||
WingCenterRight = new ModelRenderer(this, 12, 53);
|
||||
WingCenterRight.addBox(0F, 0F, -1F, 1, 9, 2);
|
||||
WingCenterRight.setRotationPoint(-0.506F, 0.3F, 6.3F);
|
||||
setRotation(WingCenterRight, 0.1745329F, 0F, 0F);
|
||||
|
||||
WingFlangeRight = new ModelRenderer(this, 18, 53);
|
||||
WingFlangeRight.addBox(0F, 0F, -1F, 1, 8, 2);
|
||||
WingFlangeRight.setRotationPoint(-0.508F, 0.3F, 5.1F);
|
||||
setRotation(WingFlangeRight, 0F, 0F, 0F);
|
||||
|
||||
WingAuxRight = new ModelRenderer(this, 24, 53);
|
||||
WingAuxRight.addBox(0F, 0F, -1F, 1, 7, 2);
|
||||
WingAuxRight.setRotationPoint(-0.51F, 0.1F, 4F);
|
||||
setRotation(WingAuxRight, -0.1745329F, 0F, 0F);
|
||||
|
||||
WingBaseRight.addChild(WingEdgeRight);
|
||||
WingBaseRight.addChild(WingInsetRight);
|
||||
WingBaseRight.addChild(WingCenterRight);
|
||||
WingBaseRight.addChild(WingFlangeRight);
|
||||
WingBaseRight.addChild(WingAuxRight);
|
||||
|
||||
//Left Wing
|
||||
WingBaseLeft = new ModelRenderer(this, 42, 41);
|
||||
WingBaseLeft.addBox(-0.5F, -1F, 0F, 1, 2, 10);
|
||||
WingBaseLeft.setRotationPoint(1F, 1F, 0F);
|
||||
setRotation(WingBaseLeft, 0.5235988F, 0.5235988F, 0F);
|
||||
|
||||
WingEdgeLeft = new ModelRenderer(this, 58, 53);
|
||||
WingEdgeLeft.addBox(0F, 0F, -2F, 1, 9, 2);
|
||||
WingEdgeLeft.setRotationPoint(-0.502F, -1F, 10F);
|
||||
setRotation(WingEdgeLeft, 0.5235988F, 0F, 0F);
|
||||
|
||||
WingInsetLeft = new ModelRenderer(this, 52, 53);
|
||||
WingInsetLeft.addBox(0F, 0F, -1F, 1, 9, 2);
|
||||
WingInsetLeft.setRotationPoint(-0.504F, 0F, 7.8F);
|
||||
setRotation(WingInsetLeft, 0.3490659F, 0F, 0F);
|
||||
|
||||
WingCenterLeft = new ModelRenderer(this, 46, 53);
|
||||
WingCenterLeft.addBox(0F, 0F, -1F, 1, 9, 2);
|
||||
WingCenterLeft.setRotationPoint(-0.506F, 0.3F, 6.3F);
|
||||
setRotation(WingCenterLeft, 0.1745329F, 0F, 0F);
|
||||
|
||||
WingFlangeLeft = new ModelRenderer(this, 40, 53);
|
||||
WingFlangeLeft.addBox(0F, 0F, -1F, 1, 8, 2);
|
||||
WingFlangeLeft.setRotationPoint(-0.508F, 0.3F, 5.1F);
|
||||
setRotation(WingFlangeLeft, 0F, 0F, 0F);
|
||||
|
||||
WingAuxLeft = new ModelRenderer(this, 34, 53);
|
||||
WingAuxLeft.addBox(0F, 0F, -1F, 1, 7, 2);
|
||||
WingAuxLeft.setRotationPoint(-0.51F, 0.1F, 4F);
|
||||
setRotation(WingAuxLeft, -0.1745329F, 0F, 0F);
|
||||
|
||||
WingBaseLeft.addChild(WingEdgeLeft);
|
||||
WingBaseLeft.addChild(WingInsetLeft);
|
||||
WingBaseLeft.addChild(WingCenterLeft);
|
||||
WingBaseLeft.addChild(WingFlangeLeft);
|
||||
WingBaseLeft.addChild(WingAuxLeft);
|
||||
}
|
||||
|
||||
public void render (Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
|
||||
{
|
||||
super.render(entity, f, f1, f2, f3, f4, f5);
|
||||
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
|
||||
WingBaseRight.render(f5);
|
||||
WingBaseLeft.render(f5);
|
||||
}
|
||||
|
||||
private void setRotation (ModelRenderer model, float x, float y, float z)
|
||||
{
|
||||
model.rotateAngleX = x;
|
||||
model.rotateAngleY = y;
|
||||
model.rotateAngleZ = z;
|
||||
}
|
||||
|
||||
public void setRotationAngles (float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
|
||||
{
|
||||
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
33
mods/tinker/tconstruct/client/entity/CloneHeadModel.java
Normal file
33
mods/tinker/tconstruct/client/entity/CloneHeadModel.java
Normal file
@ -0,0 +1,33 @@
|
||||
package mods.tinker.tconstruct.client.entity;
|
||||
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class CloneHeadModel extends ModelBase
|
||||
{
|
||||
/** The slime's bodies, both the inside box and the outside box */
|
||||
ModelRenderer slimeBodies;
|
||||
ModelRenderer slimeHeadwear;
|
||||
|
||||
public CloneHeadModel(float scale)
|
||||
{
|
||||
this.slimeBodies = new ModelRenderer(this, 0, 0);
|
||||
this.slimeBodies.addBox(-4.0F, 16.0F, -4.0F, 8, 8, 8);
|
||||
this.slimeHeadwear = new ModelRenderer(this, 32, 0);
|
||||
this.slimeHeadwear.addBox(-4.0F, 16.0F, -4.0F, 8, 8, 8, scale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the models various rotation angles then renders the model.
|
||||
*/
|
||||
public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
|
||||
{
|
||||
this.setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity);
|
||||
this.slimeBodies.render(par7);
|
||||
this.slimeHeadwear.render(par7);
|
||||
}
|
||||
}
|
91
mods/tinker/tconstruct/client/entity/SlimeCloneRender.java
Normal file
91
mods/tinker/tconstruct/client/entity/SlimeCloneRender.java
Normal file
@ -0,0 +1,91 @@
|
||||
package mods.tinker.tconstruct.client.entity;
|
||||
|
||||
import mods.tinker.tconstruct.entity.SlimeClone;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.renderer.entity.RenderLiving;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class SlimeCloneRender extends RenderLiving
|
||||
{
|
||||
private ModelBase scaleAmount;
|
||||
|
||||
public SlimeCloneRender(ModelBase par1ModelBase, ModelBase par2ModelBase, float par3)
|
||||
{
|
||||
super(par1ModelBase, par3);
|
||||
this.scaleAmount = par2ModelBase;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether Slime Render should pass or not.
|
||||
*/
|
||||
protected int shouldSlimeRenderPass(SlimeClone blueSlime, int par2, float par3)
|
||||
{
|
||||
if (blueSlime.isInvisible())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if (par2 == 0)
|
||||
{
|
||||
this.setRenderPassModel(this.scaleAmount);
|
||||
GL11.glEnable(GL11.GL_NORMALIZE);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (par2 == 1)
|
||||
{
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the scale for the slime based on getSlimeSize in EdibleSlime
|
||||
*/
|
||||
protected void scaleSlime(SlimeClone slimeClone, float par2)
|
||||
{
|
||||
float f1 = 2;
|
||||
float f2 = (slimeClone.sizeHeight + (slimeClone.sizeFactor - slimeClone.sizeHeight) * par2) / (f1 * 0.5F + 1.0F);
|
||||
float f3 = 1.0F / (f2 + 1.0F);
|
||||
GL11.glScalef(f3 * f1, 1.0F / f3 * f1, f3 * f1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args:
|
||||
* entityLiving, partialTickTime
|
||||
*/
|
||||
protected void preRenderCallback(EntityLiving par1EntityLiving, float par2)
|
||||
{
|
||||
this.scaleSlime((SlimeClone)par1EntityLiving, par2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries whether should render the specified pass or not.
|
||||
*/
|
||||
protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3)
|
||||
{
|
||||
return this.shouldSlimeRenderPass((SlimeClone)par1EntityLiving, par2, par3);
|
||||
}
|
||||
|
||||
protected void func_98191_a(SlimeClone slime)
|
||||
{
|
||||
this.loadDownloadableImageTexture(slime.skinUrl, slime.getTexture());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void func_98190_a(EntityLiving par1EntityLiving)
|
||||
{
|
||||
this.func_98191_a((SlimeClone)par1EntityLiving);
|
||||
}
|
||||
}
|
@ -56,7 +56,7 @@ public class SlimeRender extends RenderLiving
|
||||
protected void scaleSlime(BlueSlime par1EdibleSlime, float par2)
|
||||
{
|
||||
float f1 = (float)par1EdibleSlime.getSlimeSize();
|
||||
float f2 = (par1EdibleSlime.field_70812_c + (par1EdibleSlime.field_70811_b - par1EdibleSlime.field_70812_c) * par2) / (f1 * 0.5F + 1.0F);
|
||||
float f2 = (par1EdibleSlime.sizeHeight + (par1EdibleSlime.sizeFactor - par1EdibleSlime.sizeHeight) * par2) / (f1 * 0.5F + 1.0F);
|
||||
float f3 = 1.0F / (f2 + 1.0F);
|
||||
GL11.glScalef(f3 * f1, 1.0F / f3 * f1, f3 * f1);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraftforge.common.BiomeDictionary;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.liquids.LiquidContainerData;
|
||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||
@ -159,7 +160,6 @@ public class TContent implements IFuelHandler
|
||||
|
||||
public TContent()
|
||||
{
|
||||
createEntities();
|
||||
registerBlocks();
|
||||
registerItems();
|
||||
registerMaterials();
|
||||
@ -167,12 +167,12 @@ public class TContent implements IFuelHandler
|
||||
setupToolTabs();
|
||||
}
|
||||
|
||||
void createEntities ()
|
||||
public void createEntities ()
|
||||
{
|
||||
EntityRegistry.registerModEntity(FancyEntityItem.class, "Fancy Item", 0, TConstruct.instance, 32, 5, true);
|
||||
EntityRegistry.registerModEntity(DaggerEntity.class, "Dagger", 1, TConstruct.instance, 32, 5, true);
|
||||
EntityRegistry.registerModEntity(SlimeClone.class, "SlimeClone", 2, TConstruct.instance, 32, 5, true);
|
||||
//EntityRegistry.registerModEntity(LaunchedPotion.class, "Launched Potion", 1, TConstruct.instance, 32, 3, true);
|
||||
//EntityRegistry.registerModEntity(GolemBase.class, "Golembase", 2, TConstruct.instance, 32, 5, true);
|
||||
//EntityRegistry.registerModEntity(CartEntity.class, "Small Wagon", 1, TConstruct.instance, 32, 5, true);
|
||||
//EntityRegistry.registerModEntity(Crystal.class, "Crystal", 2, TConstruct.instance, 32, 5, true);
|
||||
|
||||
@ -181,18 +181,32 @@ public class TContent implements IFuelHandler
|
||||
EntityRegistry.registerModEntity(BlueSlime.class, "EdibleSlime", 12, TConstruct.instance, 64, 5, true);
|
||||
//EntityRegistry.registerModEntity(MetalSlime.class, "MetalSlime", 13, TConstruct.instance, 64, 5, true);
|
||||
|
||||
/*EntityList.IDtoClassMapping.put(7789011, NitroCreeper.class);
|
||||
EntityList.entityEggs.put(Integer.valueOf(7789011), new EntityEggInfo(7789011, 0xff7050, 0x555555));
|
||||
EntityList.IDtoClassMapping.put(7789012, BlueSlime.class);
|
||||
EntityList.entityEggs.put(Integer.valueOf(7789012), new EntityEggInfo(7789012, 0x3399ff, 0x004499));*/
|
||||
BiomeGenBase[] plains = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.PLAINS);
|
||||
BiomeGenBase[] mountain = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.MOUNTAIN);
|
||||
BiomeGenBase[] hills = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.HILLS);
|
||||
BiomeGenBase[] swamp = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.SWAMP);
|
||||
BiomeGenBase[] desert = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.DESERT);
|
||||
BiomeGenBase[] frozen = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.FROZEN);
|
||||
BiomeGenBase[] jungle = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.JUNGLE);
|
||||
BiomeGenBase[] wasteland = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.WASTELAND);
|
||||
|
||||
BiomeGenBase[] nether = BiomeDictionary.getBiomesForType(BiomeDictionary.Type.NETHER);
|
||||
|
||||
BiomeGenBase[] overworldBiomes = new BiomeGenBase[] { BiomeGenBase.ocean, BiomeGenBase.plains, BiomeGenBase.desert, BiomeGenBase.extremeHills, BiomeGenBase.forest, BiomeGenBase.taiga,
|
||||
BiomeGenBase.swampland, BiomeGenBase.river, BiomeGenBase.frozenOcean, BiomeGenBase.frozenRiver, BiomeGenBase.icePlains, BiomeGenBase.iceMountains, BiomeGenBase.beach,
|
||||
BiomeGenBase.desertHills, BiomeGenBase.forestHills, BiomeGenBase.taigaHills, BiomeGenBase.extremeHillsEdge, BiomeGenBase.jungle, BiomeGenBase.jungleHills };
|
||||
if (PHConstruct.redCreeper)
|
||||
EntityRegistry.addSpawn(NitroCreeper.class, PHConstruct.redCreeperWeight, 4, 6, EnumCreatureType.monster, BiomeGenBase.hell);
|
||||
{
|
||||
EntityRegistry.addSpawn(NitroCreeper.class, PHConstruct.redCreeperWeight, 4, 6, EnumCreatureType.monster, nether);
|
||||
}
|
||||
if (PHConstruct.blueSlime)
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, overworldBiomes);
|
||||
{
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, plains);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, mountain);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, hills);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, swamp);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, desert);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, frozen);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, jungle);
|
||||
EntityRegistry.addSpawn(BlueSlime.class, PHConstruct.blueSlimeWeight, 4, 4, EnumCreatureType.monster, wasteland);
|
||||
}
|
||||
//EntityRegistry.addSpawn(MetalSlime.class, 1, 4, 4, EnumCreatureType.monster, overworldBiomes);
|
||||
}
|
||||
|
||||
@ -358,8 +372,8 @@ public class TContent implements IFuelHandler
|
||||
//lumberHead = new ToolPart(PHConstruct.lumberHead, 0, broadheads).setUnlocalizedName("tconstruct.LumberHead");
|
||||
|
||||
//Wearables
|
||||
heavyHelmet = new TArmorBase(PHConstruct.heavyHelmet, 0).setUnlocalizedName("tconstruct.HeavyHelmet");
|
||||
heartContainer = new HeartContainer(PHConstruct.heartContainer).setUnlocalizedName("tconstruct.canister");
|
||||
//heavyHelmet = new TArmorBase(PHConstruct.heavyHelmet, 0).setUnlocalizedName("tconstruct.HeavyHelmet");
|
||||
//heartContainer = new HeartContainer(PHConstruct.heartContainer).setUnlocalizedName("tconstruct.canister");
|
||||
|
||||
//Vanilla stack sizes
|
||||
Item.doorWood.setMaxStackSize(16);
|
||||
|
@ -17,9 +17,9 @@ import net.minecraftforge.common.ForgeHooks;
|
||||
public class BlueSlime extends EntityLiving implements IMob
|
||||
{
|
||||
private static final float[] field_100000_e = new float[] { 1.0F, 0.75F, 0.5F, 0.25F, 0.0F, 0.25F, 0.5F, 0.75F };
|
||||
public float field_70813_a;
|
||||
public float field_70811_b;
|
||||
public float field_70812_c;
|
||||
public float sizeOffset;
|
||||
public float sizeFactor;
|
||||
public float sizeHeight;
|
||||
|
||||
/** the time between each jump of the slime */
|
||||
protected int slimeJumpDelay = 0;
|
||||
@ -220,8 +220,8 @@ public class BlueSlime extends EntityLiving implements IMob
|
||||
this.isDead = true;
|
||||
}
|
||||
|
||||
this.field_70811_b += (this.field_70813_a - this.field_70811_b) * 0.5F;
|
||||
this.field_70812_c = this.field_70811_b;
|
||||
this.sizeFactor += (this.sizeOffset - this.sizeFactor) * 0.5F;
|
||||
this.sizeHeight = this.sizeFactor;
|
||||
boolean flag = this.onGround;
|
||||
super.onUpdate();
|
||||
int i;
|
||||
@ -244,11 +244,11 @@ public class BlueSlime extends EntityLiving implements IMob
|
||||
this.playSound(this.getJumpSound(), this.getSoundVolume(), ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F) / 0.8F);
|
||||
}
|
||||
|
||||
this.field_70813_a = -0.5F;
|
||||
this.sizeOffset = -0.5F;
|
||||
}
|
||||
else if (!this.onGround && flag)
|
||||
{
|
||||
this.field_70813_a = 1.0F;
|
||||
this.sizeOffset = 1.0F;
|
||||
}
|
||||
|
||||
this.func_70808_l();
|
||||
@ -311,7 +311,7 @@ public class BlueSlime extends EntityLiving implements IMob
|
||||
|
||||
protected void func_70808_l ()
|
||||
{
|
||||
this.field_70813_a *= 0.6F;
|
||||
this.sizeOffset *= 0.6F;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,22 +62,22 @@ public class GolemBase extends EntityCreature
|
||||
super.updateWanderPath();
|
||||
}
|
||||
|
||||
protected void coreRoutine ()
|
||||
protected void coreIdle ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void guardRoutine ()
|
||||
protected void coreGuard ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void followRoutine ()
|
||||
protected void coreFollow ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void protectRoutine ()
|
||||
protected void coreProtect ()
|
||||
{
|
||||
|
||||
}
|
||||
|
165
mods/tinker/tconstruct/entity/SlimeClone.java
Normal file
165
mods/tinker/tconstruct/entity/SlimeClone.java
Normal file
@ -0,0 +1,165 @@
|
||||
package mods.tinker.tconstruct.entity;
|
||||
|
||||
import mods.tinker.tconstruct.TConstruct;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeHooks;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import com.google.common.io.ByteArrayDataOutput;
|
||||
|
||||
import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData;
|
||||
|
||||
public class SlimeClone extends GolemBase
|
||||
implements IEntityAdditionalSpawnData
|
||||
{
|
||||
public float sizeOffset;
|
||||
public float sizeFactor;
|
||||
public float sizeHeight;
|
||||
public String username = "";
|
||||
public SlimeClone(World world)
|
||||
{
|
||||
super(world);
|
||||
//this.texture = "/mob/char.png";
|
||||
}
|
||||
|
||||
public SlimeClone(World world, String username)
|
||||
{
|
||||
this(world);
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initCreature ()
|
||||
{
|
||||
maxHealth = 100;
|
||||
health = 100;
|
||||
baseAttack = 3;
|
||||
paused = false;
|
||||
inventory = new ItemStack[2];
|
||||
}
|
||||
|
||||
public void onUpdate ()
|
||||
{
|
||||
if (!this.worldObj.isRemote && this.worldObj.difficultySetting == 0 && this.getSlimeSize() > 0)
|
||||
{
|
||||
this.isDead = true;
|
||||
}
|
||||
|
||||
this.sizeFactor += (this.sizeOffset - this.sizeFactor) * 0.5F;
|
||||
this.sizeHeight = this.sizeFactor;
|
||||
boolean flag = this.onGround;
|
||||
super.onUpdate();
|
||||
int i;
|
||||
|
||||
if (this.onGround && !flag)
|
||||
{
|
||||
i = this.getSlimeSize();
|
||||
|
||||
for (int j = 0; j < i * 8; ++j)
|
||||
{
|
||||
float f = this.rand.nextFloat() * (float) Math.PI * 2.0F;
|
||||
float offset = this.rand.nextFloat() * 0.5F + 0.5F;
|
||||
float xPos = MathHelper.sin(f) * (float) i * 0.5F * offset;
|
||||
float zPos = MathHelper.cos(f) * (float) i * 0.5F * offset;
|
||||
TConstruct.proxy.spawnParticle(this.getSlimeParticle(), this.posX + (double) xPos, this.boundingBox.minY, this.posZ + (double) zPos, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
if (this.makesSoundOnLand())
|
||||
{
|
||||
this.playSound(this.getJumpSound(), this.getSoundVolume(), ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F) / 0.8F);
|
||||
}
|
||||
|
||||
this.sizeOffset = -0.5F;
|
||||
}
|
||||
else if (!this.onGround && flag)
|
||||
{
|
||||
this.sizeOffset = 1.0F;
|
||||
}
|
||||
|
||||
this.func_70808_l();
|
||||
|
||||
if (this.worldObj.isRemote)
|
||||
{
|
||||
i = this.getSlimeSize();
|
||||
this.setSize(0.6F * (float) i, 0.6F * (float) i);
|
||||
}
|
||||
}
|
||||
|
||||
protected void func_70808_l ()
|
||||
{
|
||||
this.sizeOffset *= 0.6F;
|
||||
}
|
||||
|
||||
protected String getJumpSound ()
|
||||
{
|
||||
return "mob.slime." + (this.getSlimeSize() > 1 ? "big" : "small");
|
||||
}
|
||||
|
||||
|
||||
protected void jump ()
|
||||
{
|
||||
this.motionY = 0.05 * getSlimeSize() + 0.37;
|
||||
|
||||
if (this.isPotionActive(Potion.jump))
|
||||
{
|
||||
this.motionY += (double) ((float) (this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F);
|
||||
}
|
||||
|
||||
if (this.isSprinting())
|
||||
{
|
||||
float f = this.rotationYaw * 0.017453292F;
|
||||
this.motionX -= (double) (MathHelper.sin(f) * 0.2F);
|
||||
this.motionZ += (double) (MathHelper.cos(f) * 0.2F);
|
||||
}
|
||||
|
||||
this.isAirBorne = true;
|
||||
ForgeHooks.onLivingJump(this);
|
||||
}
|
||||
|
||||
protected void fall (float par1)
|
||||
{
|
||||
}
|
||||
|
||||
protected String getSlimeParticle ()
|
||||
{
|
||||
return "blueslime";
|
||||
}
|
||||
|
||||
public int getSlimeSize ()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the slime makes a sound when it jumps (based upon the slime's size)
|
||||
*/
|
||||
protected boolean makesSoundOnJump ()
|
||||
{
|
||||
return this.getSlimeSize() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the slime makes a sound when it lands after a jump (based upon the slime's size)
|
||||
*/
|
||||
protected boolean makesSoundOnLand ()
|
||||
{
|
||||
return this.getSlimeSize() > 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeSpawnData (ByteArrayDataOutput data)
|
||||
{
|
||||
data.writeUTF(username);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readSpawnData (ByteArrayDataInput data)
|
||||
{
|
||||
username = data.readUTF();
|
||||
skinUrl = "http://skins.minecraft.net/MinecraftSkins/"+username+".png";
|
||||
}
|
||||
}
|
@ -60,7 +60,7 @@ public class SlotTool extends Slot
|
||||
for (int i = 1; i <= 3; i++)
|
||||
inventory.decrStackSize(i, 1);
|
||||
if (!player.worldObj.isRemote && full )
|
||||
player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "mods.tinker.resources.sounds.little_saw", 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F);
|
||||
player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "sounds.little_saw", 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F);
|
||||
//player.worldObj.playAuxSFX(1021, (int)player.posX, (int)player.posY, (int)player.posZ, 0);
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ public class TArmorBase extends ItemArmor
|
||||
{
|
||||
Icon[] icons;
|
||||
String[] iconNames = { "wood_helmet" };
|
||||
static Minecraft mc = Minecraft.getMinecraft();
|
||||
private ModelBiped modelArmor;
|
||||
//static Minecraft mc = Minecraft.getMinecraft();
|
||||
//private ModelBiped modelArmor;
|
||||
|
||||
public TArmorBase(int id, int armorSlot)
|
||||
{
|
||||
@ -34,7 +34,7 @@ public class TArmorBase extends ItemArmor
|
||||
setNoRepair();
|
||||
canRepair = false;
|
||||
this.setCreativeTab(CreativeTabs.tabMisc);
|
||||
this.modelArmor = new ModelBiped(0.75F);
|
||||
//this.modelArmor = new ModelBiped(0.75F);
|
||||
//this.setCreativeTab(TConstructRegistry.toolTab);
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class FryingPan extends Weapon
|
||||
|
||||
public void onEntityDamaged(World world, EntityPlayer player, Entity entity)
|
||||
{
|
||||
world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mods.tinker.resources.sounds.frypan_hit", 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F);
|
||||
world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "sounds.frypan_hit", 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F);
|
||||
}
|
||||
|
||||
public String getToolName ()
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 482 B |
@ -1,11 +1,10 @@
|
||||
package test;
|
||||
|
||||
import mods.tinker.tconstruct.entity.SlimeClone;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.entity.passive.EntityPig;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -33,11 +32,12 @@ public class XinStick extends Item
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
|
||||
{
|
||||
EntityCreeper creeper = new EntityCreeper(world);
|
||||
/*EntityCreeper creeper = new EntityCreeper(world);
|
||||
EntityPig pig = new EntityPig(world);
|
||||
spawnEntity(player.posX, player.posY+1, player.posZ, creeper, world, player);
|
||||
spawnEntity(player.posX, player.posY+1, player.posZ, pig, world, player);
|
||||
creeper.mountEntity(pig);
|
||||
creeper.mountEntity(pig);*/
|
||||
spawnEntity(player.posX, player.posY+1, player.posZ, new SlimeClone(world, player.username), world, player);
|
||||
//System.out.println("Health! "+player.getHealth());
|
||||
//healPlayer(player);
|
||||
//removeChunk(world, player.posX, player.posZ);
|
||||
|
Loading…
x
Reference in New Issue
Block a user