This commit is contained in:
KitsuShadow
2015-08-10 18:44:23 -04:00
parent dc0a57ede1
commit b1eb1a3bcc
19 changed files with 1229 additions and 25 deletions

BIN
Blends/Spear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

View File

@@ -1,8 +1,6 @@
package com.kitsu.medievalcraft; package com.kitsu.medievalcraft;
import net.minecraft.client.renderer.entity.RenderSnowball; import com.kitsu.medievalcraft.entity.EntityITSpear;
import net.minecraft.world.World;
import com.kitsu.medievalcraft.entity.EntityModelArrow; import com.kitsu.medievalcraft.entity.EntityModelArrow;
import com.kitsu.medievalcraft.entity.EntityShit; import com.kitsu.medievalcraft.entity.EntityShit;
import com.kitsu.medievalcraft.entity.EntityTester; import com.kitsu.medievalcraft.entity.EntityTester;
@@ -10,9 +8,12 @@ import com.kitsu.medievalcraft.item.ModItems;
import com.kitsu.medievalcraft.renderer.RenderId; import com.kitsu.medievalcraft.renderer.RenderId;
import com.kitsu.medievalcraft.renderer.RendererRegistry; import com.kitsu.medievalcraft.renderer.RendererRegistry;
import com.kitsu.medievalcraft.renderer.blocks.RenderModelArrow; import com.kitsu.medievalcraft.renderer.blocks.RenderModelArrow;
import com.kitsu.medievalcraft.renderer.blocks.RenderModelITSpear;
import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.world.World;
public class ClientProxy extends CommonProxy { public class ClientProxy extends CommonProxy {
@@ -21,6 +22,7 @@ public class ClientProxy extends CommonProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityShit.class, new RenderSnowball(ModItems.itemShit)); RenderingRegistry.registerEntityRenderingHandler(EntityShit.class, new RenderSnowball(ModItems.itemShit));
RenderingRegistry.registerEntityRenderingHandler(EntityTester.class, new RenderSnowball(ModItems.itemTester)); RenderingRegistry.registerEntityRenderingHandler(EntityTester.class, new RenderSnowball(ModItems.itemTester));
RenderingRegistry.registerEntityRenderingHandler(EntityModelArrow.class, new RenderModelArrow()); RenderingRegistry.registerEntityRenderingHandler(EntityModelArrow.class, new RenderModelArrow());
RenderingRegistry.registerEntityRenderingHandler(EntityITSpear.class, new RenderModelITSpear());
} }
@Override @Override

View File

@@ -1,11 +1,10 @@
package com.kitsu.medievalcraft; package com.kitsu.medievalcraft;
import net.minecraftforge.common.MinecraftForge;
import com.kitsu.medievalcraft.block.ModBlocks; import com.kitsu.medievalcraft.block.ModBlocks;
import com.kitsu.medievalcraft.compat.FuelHandler; import com.kitsu.medievalcraft.compat.FuelHandler;
import com.kitsu.medievalcraft.compat.ModDict; import com.kitsu.medievalcraft.compat.ModDict;
import com.kitsu.medievalcraft.crafting.CraftingHandle; import com.kitsu.medievalcraft.crafting.CraftingHandle;
import com.kitsu.medievalcraft.crafting.ModCrafting; import com.kitsu.medievalcraft.crafting.ModCrafting;
import com.kitsu.medievalcraft.entity.EntityITSpear;
import com.kitsu.medievalcraft.entity.EntityModelArrow; import com.kitsu.medievalcraft.entity.EntityModelArrow;
import com.kitsu.medievalcraft.entity.EntityShit; import com.kitsu.medievalcraft.entity.EntityShit;
import com.kitsu.medievalcraft.entity.EntityTester; import com.kitsu.medievalcraft.entity.EntityTester;
@@ -49,6 +48,7 @@ import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import net.minecraftforge.common.MinecraftForge;
@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION) @Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
public class Main { public class Main {
@@ -111,7 +111,8 @@ public class Main {
EntityRegistry.registerModEntity(EntityShit.class, "itemShit", 1, this, 64, 10, true); EntityRegistry.registerModEntity(EntityShit.class, "itemShit", 1, this, 64, 10, true);
EntityRegistry.registerModEntity(EntityModelArrow.class, "itemModelArrow", 2, this, 64, 10, true); EntityRegistry.registerModEntity(EntityModelArrow.class, "itemModelArrow", 2, this, 64, 10, true);
EntityRegistry.registerModEntity(EntityTester.class, "itemTester", 3, this, 64, 10, true); EntityRegistry.registerModEntity(EntityITSpear.class, "itemITSpear", 3, this, 64, 10, true);
EntityRegistry.registerModEntity(EntityTester.class, "itemTester", 4, this, 64, 10, true);
GameRegistry.registerFuelHandler(new FuelHandler()); GameRegistry.registerFuelHandler(new FuelHandler());

View File

@@ -65,10 +65,12 @@ public class Firebox extends BlockContainer{
public boolean isFireSource(World world, int x, int y, int z, ForgeDirection side) { public boolean isFireSource(World world, int x, int y, int z, ForgeDirection side) {
if (this == ModBlocks.firebox && side == UP){ if (this == ModBlocks.firebox && side == UP){
TileEntityFirebox tile = (TileEntityFirebox) world.getTileEntity(x, y, z); TileEntityFirebox tile = (TileEntityFirebox) world.getTileEntity(x, y, z);
if(tile.isOn==true){
if(this.getItemBurnTime(tile.getStackInSlot(0))>0){ if(this.getItemBurnTime(tile.getStackInSlot(0))>0){
return true; return true;
} }
} }
}
return false; return false;
} }
@@ -129,9 +131,11 @@ public class Firebox extends BlockContainer{
} }
if(player.inventory.getCurrentItem()!=null){ if(player.inventory.getCurrentItem()!=null){
if (tileEnt.getStackInSlot(0)==null){ if (tileEnt.getStackInSlot(0)==null){
if(isItemFuel(player.inventory.getCurrentItem())==true){
tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem()); tileEnt.setInventorySlotContents(0, player.inventory.getCurrentItem());
player.inventory.setInventorySlotContents(player.inventory.currentItem, null); player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
} }
}
if (tileEnt.getStackInSlot(0)!=null){ if (tileEnt.getStackInSlot(0)!=null){
if(player.inventory.getCurrentItem()!=null){ if(player.inventory.getCurrentItem()!=null){
ItemStack pStack = player.inventory.getCurrentItem().copy(); ItemStack pStack = player.inventory.getCurrentItem().copy();

View File

@@ -0,0 +1,582 @@
package com.kitsu.medievalcraft.entity;
import java.util.List;
import com.kitsu.medievalcraft.item.ModItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.server.S2BPacketChangeGameState;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityITSpear extends EntityArrow implements IProjectile {
private int field_145791_d = -1;
private int field_145792_e = -1;
private int field_145789_f = -1;
private Block field_145790_g;
private int inData;
private boolean inGround;
/** 1 if the player can pick up the arrow */
public int canBePickedUp;
/** Seems to be some sort of timer for animating an arrow. */
public int arrowShake;
/** The owner of this arrow. */
public Entity shootingEntity;
private int ticksInGround;
private int ticksInAir;
private double damage = 10.0D;
/** The amount of knockback an arrow applies when it hits a mob. */
private int knockbackStrength;
public EntityITSpear(World world)
{
super(world);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
}
public EntityITSpear(World world, double x, double y, double z)
{
super(world);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
this.setPosition(x, y, z);
this.yOffset = 0.0F;
}
@SuppressWarnings("cast")
public EntityITSpear(World world, EntityLivingBase player, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_)
{
super(world);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = player;
if (player instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.posY = player.posY + (double)player.getEyeHeight() + 0.10000000149011612D;
double d0 = p_i1755_3_.posX - player.posX;
double d1 = p_i1755_3_.boundingBox.minY + (double)(p_i1755_3_.height / 3.0F) - this.posY;
double d2 = p_i1755_3_.posZ - player.posZ;
double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2);
if (d3 >= 1.0E-7D)
{
float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI));
double d4 = d0 / d3;
double d5 = d2 / d3;
this.setLocationAndAngles(player.posX + d4, this.posY, player.posZ + d5, f2, f3);
this.yOffset = 0.0F;
float f4 = (float)d3 * 0.2F;
this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_);
}
}
@SuppressWarnings("cast")
public EntityITSpear(World world, EntityLivingBase player, float p_i1756_3_)
{
super(world);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = player;
if (player instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.setSize(0.5F, 0.5F);
this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch);
this.posX += (player.getLookVec().xCoord);
//this.posY -= 0.10000000149011612D;
this.posZ += (player.getLookVec().zCoord);
//this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F);
this.posY += player.getLookVec().yCoord;
if(player.getLookVec().yCoord < 0){
this.posY += player.getLookVec().yCoord * 2;
}
this.setPosition(this.posX, this.posY, this.posZ);
//this.setSize(0.5F, 0.5F);
//this.setLocationAndAngles(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ, player.rotationYaw, player.rotationPitch);
//this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F);
//this.posY -= 0.10000000149011612D;
//this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F);
//this.setPosition(this.posX, this.posY, this.posZ);
this.yOffset = 0.0F;
this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI));
this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI));
this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI));
this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F);
}
protected void entityInit()
{
this.dataWatcher.addObject(16, Byte.valueOf((byte)0));
}
/**
* Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction.
*/
@SuppressWarnings("cast")
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_)
{
float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
p_70186_1_ /= (double)f2;
p_70186_3_ /= (double)f2;
p_70186_5_ /= (double)f2;
p_70186_1_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_;
p_70186_3_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_;
p_70186_5_ += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)p_70186_8_;
p_70186_1_ *= (double)p_70186_7_;
p_70186_3_ *= (double)p_70186_7_;
p_70186_5_ *= (double)p_70186_7_;
this.motionX = p_70186_1_/2.5;
this.motionY = p_70186_3_/1.75;
this.motionZ = p_70186_5_/2.5;
float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, (double)f3) * 180.0D / Math.PI);
this.ticksInGround = 1;
}
/**
* Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX,
* posY, posZ, yaw, pitch
*/
@SideOnly(Side.CLIENT)
public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_)
{
this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
this.setRotation(p_70056_7_, p_70056_8_);
}
/**
* Sets the velocity to the args. Args: x, y, z
*/
@SuppressWarnings("cast")
@SideOnly(Side.CLIENT)
public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_)
{
this.motionX = p_70016_1_ ;
this.motionY = p_70016_3_ ;
this.motionZ = p_70016_5_ ;
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
{
float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, (double)f) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch;
this.prevRotationYaw = this.rotationYaw;
this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
this.ticksInGround = 0;
}
}
/**
* Called to update the entity's position/logic.
*/
@SuppressWarnings("cast")
public void onUpdate()
{
super.onUpdate();
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
{
float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI);
}
Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
//this.getEntityData().setInteger("blockX", this.field_145791_d);
if (block.getMaterial() != Material.air)
{
block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)))
{
this.inGround = true;
}
}
if (this.arrowShake > 0)
{
--this.arrowShake;
}
if (this.inGround)
{
int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (block == this.field_145790_g && j == this.inData)
{
++this.ticksInGround;
if (this.ticksInGround == -1)
{
this.setDead();
}
}
else
{
this.inGround = false;
this.motionX *= (double)(this.rand.nextFloat() * 0.2F);
this.motionY *= (double)(this.rand.nextFloat() * 0.2F);
this.motionZ *= (double)(this.rand.nextFloat() * 0.2F);
this.ticksInGround = 0;
this.ticksInAir = 0;
}
}
else
{
++this.ticksInAir;
Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false);
vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
if (movingobjectposition != null)
{
vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
}
Entity entity = null;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
double d0 = 0.0D;
int i;
float f1;
for (i = 0; i < list.size(); ++i)
{
Entity entity1 = (Entity)list.get(i);
if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5))
{
f1 = 0.3F;
AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1);
MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);
if (movingobjectposition1 != null)
{
double d1 = vec31.distanceTo(movingobjectposition1.hitVec);
if (d1 < d0 || d0 == 0.0D)
{
entity = entity1;
d0 = d1;
}
}
}
}
if (entity != null)
{
movingobjectposition = new MovingObjectPosition(entity);
}
if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer)
{
EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit;
if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer))
{
movingobjectposition = null;
}
}
float f2;
float f4;
if (movingobjectposition != null)
{
if (movingobjectposition.entityHit != null)
{
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
int k = MathHelper.ceiling_double_int((double)f2 * this.damage);
DamageSource damagesource = null;
if (this.shootingEntity == null)
{
damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity);
}
else
{
damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity);
}
if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman))
{
movingobjectposition.entityHit.setFire(5);
}
if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k))
{
if (movingobjectposition.entityHit instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit;
if (!this.worldObj.isRemote)
{
entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1);
}
if (this.knockbackStrength > 0)
{
f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
if (f4 > 0.0F)
{
movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4);
}
}
if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase)
{
EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity);
EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase);
}
if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP)
{
((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F));
}
}
this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
if (!(movingobjectposition.entityHit instanceof EntityEnderman))
{
this.setDead();
}
}
else
{
this.motionX *= -0.10000000149011612D;
this.motionY *= -0.10000000149011612D;
this.motionZ *= -0.10000000149011612D;
this.rotationYaw += 180.0F;
this.prevRotationYaw += 180.0F;
this.ticksInAir = 0;
}
}
else
{
this.field_145791_d = movingobjectposition.blockX;
this.field_145792_e = movingobjectposition.blockY;
this.field_145789_f = movingobjectposition.blockZ;
this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX));
this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY));
this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ));
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
this.posX -= this.motionX / (double)f2 * 0.05000000074505806D;
this.posY -= this.motionY / (double)f2 * 0.05000000074505806D;
this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D;
this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
this.inGround = true;
this.arrowShake = 7;
if (this.field_145790_g.getMaterial() != Material.air)
{
this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this);
}
}
}
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
{
;
}
while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
{
this.prevRotationPitch += 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
{
this.prevRotationYaw -= 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
{
this.prevRotationYaw += 360.0F;
}
this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
float f3 = 0.99F;
f1 = 0.05F;
if (this.isInWater())
{
for (int l = 0; l < 4; ++l)
{
f4 = 0.25F;
this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ);
}
f3 = 0.8F;
}
if (this.isWet())
{
this.extinguish();
}
this.motionX *= (double)f3;
this.motionY *= (double)f3;
this.motionZ *= (double)f3;
this.motionY -= (double)f1;
this.setPosition(this.posX, this.posY, this.posZ);
this.func_145775_I();
}
}
/**
* (abstract) Protected helper method to write subclass entity data to NBT.
*/
public void writeEntityToNBT(NBTTagCompound p_70014_1_)
{
p_70014_1_.setShort("xTile", (short)this.field_145791_d);
p_70014_1_.setShort("yTile", (short)this.field_145792_e);
p_70014_1_.setShort("zTile", (short)this.field_145789_f);
p_70014_1_.setShort("life", (short)this.ticksInGround);
p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g));
p_70014_1_.setByte("inData", (byte)this.inData);
p_70014_1_.setByte("shake", (byte)this.arrowShake);
p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0));
p_70014_1_.setByte("pickup", (byte)this.canBePickedUp);
p_70014_1_.setDouble("damage", this.damage);
}
/**
* (abstract) Protected helper method to read subclass entity data from NBT.
*/
public void readEntityFromNBT(NBTTagCompound p_70037_1_)
{
this.field_145791_d = p_70037_1_.getShort("xTile");
this.field_145792_e = p_70037_1_.getShort("yTile");
this.field_145789_f = p_70037_1_.getShort("zTile");
this.ticksInGround = p_70037_1_.getShort("life");
this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255);
this.inData = p_70037_1_.getByte("inData") & 255;
this.arrowShake = p_70037_1_.getByte("shake") & 255;
this.inGround = p_70037_1_.getByte("inGround") == 1;
if (p_70037_1_.hasKey("damage", 99))
{
this.damage = p_70037_1_.getDouble("damage");
}
if (p_70037_1_.hasKey("pickup", 99))
{
this.canBePickedUp = p_70037_1_.getByte("pickup");
}
else if (p_70037_1_.hasKey("player", 99))
{
this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0;
}
}
/**
* Called by a player entity when they collide with an entity
*/
public void onCollideWithPlayer(EntityPlayer p_70100_1_)
{
if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0)
{
boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode;
if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.itemITSpear, 1)))
{
flag = false;
}
if (flag)
{
this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);
p_70100_1_.onItemPickup(this, 1);
this.setDead();
}
}
}
/**
* returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
* prevent them from trampling crops
*/
protected boolean canTriggerWalking()
{
return false;
}
@SideOnly(Side.CLIENT)
public float getShadowSize()
{
return 0.0F;
}
public void setDamage(double p_70239_1_)
{
this.damage = p_70239_1_;
}
public double getDamage()
{
return this.damage;
}
/**
* Sets the amount of knockback the arrow applies when it hits a mob.
*/
public void setKnockbackStrength(int p_70240_1_)
{
this.knockbackStrength = p_70240_1_;
}
/**
* If returns false, the item will not inflict any damage against entities.
*/
public boolean canAttackWithItem()
{
return false;
}
}

View File

@@ -50,6 +50,7 @@ import com.kitsu.medievalcraft.item.forms.iron.IronSpearTipForm;
import com.kitsu.medievalcraft.item.misc.ItemBark; import com.kitsu.medievalcraft.item.misc.ItemBark;
import com.kitsu.medievalcraft.item.misc.ItemSmallBarrelLid; import com.kitsu.medievalcraft.item.misc.ItemSmallBarrelLid;
import com.kitsu.medievalcraft.item.misc.RawCuredLeather; import com.kitsu.medievalcraft.item.misc.RawCuredLeather;
import com.kitsu.medievalcraft.item.throwable.ItemITSpear;
import com.kitsu.medievalcraft.item.throwable.ItemShit; import com.kitsu.medievalcraft.item.throwable.ItemShit;
import com.kitsu.medievalcraft.item.throwable.ItemTester; import com.kitsu.medievalcraft.item.throwable.ItemTester;
import com.kitsu.medievalcraft.item.tools.CustomIronHoe; import com.kitsu.medievalcraft.item.tools.CustomIronHoe;
@@ -81,8 +82,11 @@ public final class ModItems {
public static Item ironChunk; public static Item ironChunk;
public static Item hotironChunk; public static Item hotironChunk;
public static Item ironRing; public static Item ironRing;
public static Item itemShit; public static Item itemShit;
public static Item itemITSpear;
public static Item itemTester; public static Item itemTester;
public static Item linkedRings; public static Item linkedRings;
public static Item ironRingMesh; public static Item ironRingMesh;
public static Item chainMailPlate; public static Item chainMailPlate;
@@ -425,6 +429,7 @@ public final class ModItems {
WOOD(0, 59, 2.0F, 0, 15), STONE(1, 131, 4.0F, 1, 5), IRON(2, 250, 6.0F, 2, 14), EMERALD(3, 1561, 8.0F, 3, 10), GOLD(0, 32, 12.0F, 0, 22);*/ WOOD(0, 59, 2.0F, 0, 15), STONE(1, 131, 4.0F, 1, 5), IRON(2, 250, 6.0F, 2, 14), EMERALD(3, 1561, 8.0F, 3, 10), GOLD(0, 32, 12.0F, 0, 22);*/
public static ToolMaterial longswordmat = EnumHelper.addToolMaterial("LONGSWORD", 1, 350, 2.0F, 2.0F, 0); public static ToolMaterial longswordmat = EnumHelper.addToolMaterial("LONGSWORD", 1, 350, 2.0F, 2.0F, 0);
public static ToolMaterial ironspearmat = EnumHelper.addToolMaterial("IRONSPEAR", 1, 350, 2.0F, 2.0F, 0);
public static ToolMaterial woodenshieldmat = EnumHelper.addToolMaterial("WOODENSHIELD", 0, 65, 2.0F, -3.5F, 0); public static ToolMaterial woodenshieldmat = EnumHelper.addToolMaterial("WOODENSHIELD", 0, 65, 2.0F, -3.5F, 0);
public static ToolMaterial ironshieldmat = EnumHelper.addToolMaterial("IRONSHIELD", 0, 500, 2.0F, -3.5F, 0); public static ToolMaterial ironshieldmat = EnumHelper.addToolMaterial("IRONSHIELD", 0, 500, 2.0F, -3.5F, 0);
public static ToolMaterial heavymacemat = EnumHelper.addToolMaterial("HEAVYMACE", 0, 350, 4.0F, -4.0F, 0); public static ToolMaterial heavymacemat = EnumHelper.addToolMaterial("HEAVYMACE", 0, 350, 4.0F, -4.0F, 0);
@@ -820,6 +825,7 @@ public final class ModItems {
itemModelArrow = new ItemModelArrow(); itemModelArrow = new ItemModelArrow();
itemIronTippedModelArrow = new ItemIronTippedModelArrow(); itemIronTippedModelArrow = new ItemIronTippedModelArrow();
itemITSpear = new ItemITSpear("itemITSpear", ironspearmat);
itemBark= new ItemBark(); itemBark= new ItemBark();
itemSmallBarrelLid = new ItemSmallBarrelLid(); itemSmallBarrelLid = new ItemSmallBarrelLid();

View File

@@ -0,0 +1,125 @@
package com.kitsu.medievalcraft.item.throwable;
import com.kitsu.medievalcraft.Main;
import com.kitsu.medievalcraft.entity.EntityITSpear;
import com.kitsu.medievalcraft.entity.EntityShit;
import com.kitsu.medievalcraft.item.ModItems;
import com.kitsu.medievalcraft.util.CustomTab;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
public class ItemITSpear extends ItemSword {
private String name = "itemITSpear";
public ItemITSpear(String name, ToolMaterial mat) {
super(mat);
setUnlocalizedName(name);
setMaxStackSize(1);
setCreativeTab(CustomTab.MedievalCraftTab);
setTextureName(Main.MODID + ":" + name);
GameRegistry.registerItem(this, name);
}
@Override
public EnumAction getItemUseAction(ItemStack stack) {
return EnumAction.bow;
}
@Override
public int getMaxItemUseDuration(ItemStack p_77626_1_) {
return 72000;
}
public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
{
ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
MinecraftForge.EVENT_BUS.post(event);
if (event.isCanceled())
{
return event.result;
}
if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(ModItems.itemITSpear))
{
p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
}
return p_77659_1_;
}
public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_)
{
int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
MinecraftForge.EVENT_BUS.post(event);
if (event.isCanceled())
{
return;
}
j = event.charge;
boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
if (flag || p_77615_3_.inventory.hasItem(ModItems.itemITSpear))
{
float f = (float)j / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if ((double)f < 0.1D)
{
return;
}
if (f > 1.0F)
{
f = 1.0F;
}
EntityITSpear entityspear = new EntityITSpear(p_77615_2_, p_77615_3_, f * 2.0F);
if (f == 1.0F)
{
entityspear.setIsCritical(true);
}
int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_);
if (k > 0)
{
entityspear.setDamage(entityspear.getDamage() + (double)k * 0.5D + 0.5D);
}
int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_);
if (l > 0)
{
entityspear.setKnockbackStrength(l);
}
if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0)
{
entityspear.setFire(100);
}
p_77615_1_.damageItem(1, p_77615_3_);
p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
if (flag)
{
entityspear.canBePickedUp = 2;
}
else
{
p_77615_3_.inventory.consumeInventoryItem(ModItems.itemITSpear);
}
if (!p_77615_2_.isRemote)
{
p_77615_2_.spawnEntityInWorld(entityspear);
}
}
}
public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
{
return p_77654_1_;
}
}

View File

@@ -28,7 +28,10 @@ import com.kitsu.medievalcraft.renderer.blocks.machine.ForgeRenderer;
import com.kitsu.medievalcraft.renderer.blocks.machine.FourShelfRenderer; import com.kitsu.medievalcraft.renderer.blocks.machine.FourShelfRenderer;
import com.kitsu.medievalcraft.renderer.blocks.machine.SolidFilterRender; import com.kitsu.medievalcraft.renderer.blocks.machine.SolidFilterRender;
import com.kitsu.medievalcraft.renderer.blocks.machine.WaterFilterRenderer; import com.kitsu.medievalcraft.renderer.blocks.machine.WaterFilterRenderer;
import com.kitsu.medievalcraft.renderer.itemrenderer.IRITSpear;
import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererITModelArrow;
import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererLongbow; import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererLongbow;
import com.kitsu.medievalcraft.renderer.itemrenderer.ItemRendererModelArrow;
import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.IRCrucible; import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.IRCrucible;
import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRSlackCrucible; import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRSlackCrucible;
import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRTanninCrucible; import com.kitsu.medievalcraft.renderer.itemrenderer.crucibles.empty.IRTanninCrucible;
@@ -52,7 +55,6 @@ import com.kitsu.medievalcraft.renderer.itemrenderer.tongs.IRSlottedTongs;
import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRCraftingBlade; import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRCraftingBlade;
import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRForgeHammer; import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRForgeHammer;
import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRInlayHammer; import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRInlayHammer;
import com.kitsu.medievalcraft.renderer.itemrenderer.tools.IRironPicks;
import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRBattleAxe; import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRBattleAxe;
import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRGladius; import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.IRGladius;
import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.ItemRenderHeavymace; import com.kitsu.medievalcraft.renderer.itemrenderer.weapons.ItemRenderHeavymace;
@@ -108,10 +110,11 @@ public class RendererRegistry {
MinecraftForgeClient.registerItemRenderer(ModItems.forgeHammer, new IRForgeHammer()); MinecraftForgeClient.registerItemRenderer(ModItems.forgeHammer, new IRForgeHammer());
MinecraftForgeClient.registerItemRenderer(ModItems.inlayHammer, new IRInlayHammer()); MinecraftForgeClient.registerItemRenderer(ModItems.inlayHammer, new IRInlayHammer());
MinecraftForgeClient.registerItemRenderer(ModItems.customIronPick, new IRironPicks()); //MinecraftForgeClient.registerItemRenderer(ModItems.customIronPick, new IRironPicks());
//MinecraftForgeClient.registerItemRenderer(ModItems.itemModelArrow, new ItemRendererModelArrow()); MinecraftForgeClient.registerItemRenderer(ModItems.itemModelArrow, new ItemRendererModelArrow());
//MinecraftForgeClient.registerItemRenderer(ModItems.itemIronTippedModelArrow, new ItemRendererITModelArrow()); MinecraftForgeClient.registerItemRenderer(ModItems.itemIronTippedModelArrow, new ItemRendererITModelArrow());
MinecraftForgeClient.registerItemRenderer(ModItems.itemITSpear, new IRITSpear());
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.emptySoftCrucible), new ItemRendererSECrucible()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.emptySoftCrucible), new ItemRendererSECrucible());

View File

@@ -0,0 +1,63 @@
package com.kitsu.medievalcraft.renderer.blocks;
import org.lwjgl.opengl.GL11;
import com.kitsu.medievalcraft.entity.EntityITSpear;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderModelITSpear extends Render
{
//private static final ResourceLocation arrowTextures = new ResourceLocation("textures/entity/arrow.png");
private static final ResourceLocation arrowTextures = new ResourceLocation("kitsumedievalcraft:textures/items/Spear.png");
public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/Spear.obj");
public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Spear.png");
public IModelCustom model = AdvancedModelLoader.loadModel(MODEL);
public void doRender(EntityITSpear p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
{
GL11.glPushMatrix();
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_ );
GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll();
GL11.glPopMatrix();
}
protected ResourceLocation getEntityTexture(EntityITSpear p_110775_1_)
{
return arrowTextures;
}
/**
* Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
*/
protected ResourceLocation getEntityTexture(Entity p_110775_1_)
{
return this.getEntityTexture((EntityITSpear)p_110775_1_);
}
/**
* Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
* handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
* (Render<T extends Entity) and this method has signature public void func_76986_a(T entity, double d, double d1,
* double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
*/
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
{
//System.out.println("doRender Ran");
this.doRender((EntityITSpear)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
}
}

View File

@@ -0,0 +1,154 @@
package com.kitsu.medievalcraft.renderer.itemrenderer;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class IRITSpear implements IItemRenderer{
public static final ResourceLocation MODEL = new ResourceLocation("kitsumedievalcraft:models/Spear.obj");
public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Spear.png");
public IModelCustom model = AdvancedModelLoader.loadModel(MODEL);
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type) {
case EQUIPPED: {
return true;
}
case EQUIPPED_FIRST_PERSON: {
return true;
}
case INVENTORY: {
return true;
}
case ENTITY: {
return true;
}
default: return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
ItemRendererHelper helper) {
switch(type) {
case EQUIPPED: {
return false;
}
case EQUIPPED_FIRST_PERSON: {
return false;
}
case INVENTORY: {
return false;
}
case ENTITY: {
return false;
}
default: return false;
}
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch(type) {
case EQUIPPED: {
GL11.glPushMatrix();
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glTranslatef(0.5F, 0.4F, -0.0F);
//ANGLE, X ROTATE, Y ROTATE, Z ROTATE
GL11.glRotatef(140F, 0.0F, 0.0F, 1.0F);
//GL11.glRotatef(-20F, 0.0F, 1.0F, 0.0F);
//GL11.glRotatef(40F, 1.0F, 0.0F, 0.0F);
//GL11.glRotated(90, 1.0, 0.0, 0.0);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll();
GL11.glPopMatrix();
} break;
case EQUIPPED_FIRST_PERSON: {
GL11.glPushMatrix();
GL11.glScalef(1.0F, 1.0F, 1.0F);
//ANGLE, X ROTATE, Y ROTATE, Z ROTATE
GL11.glTranslatef(0.0F, 2.0F, 0.0F);
//GL11.glRotatef(45F, 1.0F, 0.0F, 0.0F);
// GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F);
// GL11.glRotatef(45F, 0.0F, -1.0F, 0.0F);
//GL11.glRotated(-85, 1.0, 0.0, 0.0);
//GL11.glRotated(50, 0.0F, 0.0F, 1.0F);
//GL11.glRotated(3, 0.0F, 1.0F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll();
GL11.glPopMatrix();
} break;
case INVENTORY: {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_TEXTURE_2D);
float iscale = 9F;
GL11.glScalef(iscale, iscale, iscale);
//GL11.glRotatef(-45, 0.0F, 0.0F, 1.0F);
//GL11.glRotatef(45, 1.0F, 0.0F, 0.0F);
//GL11.glTranslatef(0.2F, 1.2F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll();
GL11.glPopMatrix();
} break;
case ENTITY: {
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
GL11.glScalef(5.0F, 5.0F, 5.0F);
//GL11.glTranslatef(5.0F, 5.0F, 5.0F);
//ANGLE, X ROTATE, Y ROTATE, Z ROTATE
//GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
//GL11.glRotatef(90F, 1.0F, 0.0F, 1.0F);
//GL11.glRotatef(45F, 0.0F, 0.0F, 1.0F);
//GL11.glRotated(90, 1.0, 0.0, 0.0);
model.renderAll();
GL11.glPopMatrix();
} break;
default:
break;
}
}
}

View File

@@ -222,6 +222,9 @@ public class TileEntityFirebox extends TileEntity implements IInventory{
private void fireboxMaint(World world, int x, int y, int z){ private void fireboxMaint(World world, int x, int y, int z){
if((this.getStackInSlot(0)==null)&&(world.getBlockMetadata(x, y, z)==1)){ if((this.getStackInSlot(0)==null)&&(world.getBlockMetadata(x, y, z)==1)){
world.setBlockMetadataWithNotify(x, y, z, 0, 3); world.setBlockMetadataWithNotify(x, y, z, 0, 3);
if(world.getBlock(x, y+1, z)==Blocks.fire){
world.setBlock(x, y+1, z, Blocks.air, 0, 2);
}
this.markForUpdate(); this.markForUpdate();
this.markDirty(); this.markDirty();
//world.getBlock(x, y, z).setLightLevel(0f); //world.getBlock(x, y, z).setLightLevel(0f);

View File

@@ -0,0 +1,261 @@
# Blender v2.71 (sub 0) OBJ File: 'Spear.blend'
# www.blender.org
mtllib Spear.mtl
o Cube_Cube.001
v 1.846850 -0.006872 0.001740
v 1.970270 0.013516 0.001740
v 1.623894 0.013516 -0.108096
v 1.610836 -0.006872 -0.080340
v 1.693859 0.013516 -0.069275
v 1.680801 -0.006872 -0.041520
v 1.546934 0.013120 -0.186002
v 1.546805 -0.006674 -0.158247
v 1.846850 0.032717 0.001740
v 1.610836 0.032717 -0.080340
v 1.680801 0.032717 -0.041520
v 1.546805 0.032915 -0.158247
v 1.623894 0.013516 0.111576
v 1.610836 -0.006872 0.083821
v 1.693859 0.013516 0.072756
v 1.680801 -0.006872 0.045000
v 1.546934 0.013120 0.189483
v 1.546805 -0.006674 0.161727
v 1.610836 0.032717 0.083821
v 1.680801 0.032717 0.045000
v 1.546805 0.032915 0.161727
v 1.469716 0.012725 -0.108096
v 1.482774 0.033113 -0.080340
v 1.482774 0.033113 0.001740
v 1.482774 -0.006476 -0.080340
v 1.469716 0.012725 0.111576
v 1.482774 0.033113 0.083821
v 1.482774 -0.006476 0.083821
v 1.680801 0.032717 0.001740
v 1.680801 -0.006872 0.001740
v 1.398489 0.053369 0.000806
v -1.607362 0.053369 0.000804
v 1.398489 0.033056 0.035990
v -1.607362 0.033056 0.035988
v 1.398489 -0.007571 0.035990
v -1.607362 -0.007571 0.035988
v 1.398489 -0.027885 0.000806
v -1.607362 -0.027885 0.000804
v 1.398489 -0.007571 -0.034378
v -1.607362 -0.007571 -0.034380
v 1.398489 0.033056 -0.034378
v -1.607362 0.033056 -0.034380
v 1.482774 -0.006476 0.001740
vt 0.909646 0.207292
vt 0.912341 0.111441
vt 0.978695 0.111446
vt 0.875903 0.113312
vt 0.895238 0.111444
vt 0.892542 0.207294
vt 0.892582 0.021160
vt 0.909686 0.021157
vt 0.925060 0.170837
vt 0.906990 0.079284
vt 0.925060 0.075489
vt 0.958883 0.210746
vt 0.956164 0.114895
vt 0.975439 0.116764
vt 0.941807 0.210743
vt 0.939088 0.114893
vt 0.941767 0.024609
vt 0.958842 0.024612
vt 0.927928 0.133336
vt 0.909857 0.129541
vt 0.927928 0.037989
vt 0.872778 0.114897
vt 0.901924 0.024612
vt 0.901964 0.210746
vt 0.938308 0.209507
vt 0.919866 0.210437
vt 0.913295 0.117370
vt 0.847576 0.925853
vt 0.943494 0.944485
vt 0.847316 0.944969
vt 0.688030 0.885062
vt 0.649924 0.795399
vt 0.668977 0.791613
vt 0.911733 0.122382
vt 0.930175 0.120522
vt 0.936745 0.216378
vt 0.911318 0.018270
vt 0.930427 0.018835
vt 0.913224 0.114841
vt 0.954682 0.210093
vt 0.937231 0.114504
vt 0.954682 0.019078
vt 0.918303 0.029315
vt 0.936745 0.030244
vt 0.938308 0.023373
vt 0.931737 0.119229
vt 0.754198 0.840644
vt 0.730639 0.844556
vt 0.731301 0.820844
vt 0.688030 0.787828
vt 0.569166 0.795181
vt 0.588241 0.791504
vt 0.607315 0.890252
vt 0.960661 0.018320
vt 0.955656 0.114781
vt 0.941558 0.018276
vt 0.660883 0.975200
vt 0.559541 0.956621
vt 0.655707 0.956100
vt 0.000000 0.000000
vt 0.786166 0.829217
vt 0.779441 0.836886
vt 0.779718 0.811540
vt 0.772716 0.844556
vt 0.756820 0.791740
vt 0.780380 0.787828
vt 0.744061 0.806292
vt 0.957682 0.205726
vt 0.938502 0.210596
vt 0.807242 0.834065
vt 0.813691 0.816388
vt 0.813967 0.841735
vt 0.820692 0.849405
vt 0.839210 0.845493
vt 0.813029 0.792676
vt 0.836588 0.796588
vt 0.862107 0.825693
vt 0.862769 0.849405
vt 0.849347 0.811141
vt 0.848313 0.975191
vt 0.848052 0.956091
vt 0.944231 0.956602
vt 0.876729 0.114667
vt 0.894622 0.019078
vt 0.894622 0.210093
vt 0.927352 0.211156
vt 0.908321 0.205676
vt 0.660146 0.925845
vt 0.654971 0.944960
vt 0.558805 0.944468
vt 0.607315 0.787828
vt 0.949515 0.207294
vt 0.906941 0.162449
vt 0.924512 0.070802
vt 0.924512 0.168102
vt 0.949556 0.021160
vt 0.906184 0.076454
vt 0.923755 0.070802
vt 0.923755 0.168102
vt 0.918303 0.215449
vt 0.919866 0.024303
vt 0.904418 0.834555
vt 0.884600 0.799370
vt 0.904418 0.794239
vt 0.904419 0.917186
vt 0.884600 0.882001
vt 0.904419 0.876870
vt 0.832557 0.726440
vt 0.736378 0.726924
vt 0.736378 0.021532
vt 0.544033 0.726915
vt 0.447867 0.726423
vt 0.447867 0.021031
vt 0.448604 0.021688
vt 0.544770 0.021167
vt 0.544770 0.726412
vt 0.653498 0.470833
vt 0.645169 0.566340
vt 0.636841 0.470833
vt 0.737115 0.021157
vt 0.833293 0.021669
vt 0.833294 0.726915
vt 0.737115 0.726403
vt 0.832557 0.021048
vt 0.544033 0.021523
vt 0.448604 0.726933
vt 0.636841 0.279818
vt 0.653498 0.279818
vt 0.645169 0.184311
usemtl None
s off
f 6/1 5/2 2/3
f 7/4 3/5 4/6
f 3/5 5/2 6/1
f 3/5 10/7 11/8
f 7/9 12/10 10/11
f 2/3 5/2 11/8
f 14/12 13/13 17/14
f 16/15 15/16 13/13
f 20/17 19/18 13/13
f 19/19 21/20 17/21
f 2/22 9/23 20/17
f 16/15 1/24 2/22
f 28/25 18/26 17/27
f 27/28 31/29 33/30
f 31/31 27/32 24/33
f 7/34 22/35 23/36
f 27/37 33/38 26/39
f 41/40 22/41 39/42
f 7/34 8/43 25/44
f 27/45 26/46 17/27
f 10/47 12/48 23/49
f 24/33 23/50 31/31
f 25/51 43/52 37/53
f 23/54 22/55 41/56
f 25/57 37/58 39/59
f 11/60 29/60 20/60
f 20/61 29/62 19/63
f 11/64 10/47 29/62
f 19/63 27/65 21/66
f 29/62 10/47 19/63
f 24/67 27/65 19/63
f 22/55 25/68 39/69
f 16/60 30/60 6/60
f 16/70 14/71 30/72
f 6/73 30/72 4/74
f 30/72 14/71 4/74
f 14/71 18/75 28/76
f 4/74 25/77 8/78
f 28/76 43/79 14/71
f 23/80 41/81 31/82
f 26/83 33/84 35/85
f 35/86 28/87 26/39
f 28/88 35/89 37/90
f 37/53 43/52 28/91
f 1/92 6/1 2/3
f 8/93 7/94 4/95
f 4/6 3/5 6/1
f 5/2 3/5 11/8
f 3/5 7/4 10/7
f 9/96 2/3 11/8
f 18/97 14/98 17/99
f 14/12 16/15 13/13
f 15/16 20/17 13/13
f 13/13 19/18 17/14
f 15/16 2/22 20/17
f 15/16 16/15 2/22
f 26/46 28/25 17/27
f 12/100 7/34 23/36
f 22/35 7/34 25/44
f 21/101 27/45 17/27
f 9/102 11/103 20/104
f 23/49 24/67 10/47
f 1/105 16/106 6/107
f 25/77 4/74 43/79
f 24/67 19/63 10/47
f 43/79 4/74 14/71
s 1
f 32/108 34/109 33/110
f 33/110 34/109 36/111
f 36/111 38/112 37/113
f 38/114 40/115 39/116
f 34/117 32/118 42/119
f 42/120 32/121 31/122
f 40/115 42/120 41/123
f 31/124 32/108 33/110
f 35/125 33/110 36/111
f 35/125 36/111 37/113
f 37/126 38/114 39/116
f 34/117 40/127 36/128
f 39/116 40/115 41/123
f 41/123 42/120 31/122
f 40/127 38/129 36/128
f 34/117 42/119 40/127

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB