diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
| commit | 3eb8c7a8fca3f22475d53e30f0b90a6737f313fa (patch) | |
| tree | 1c0afbcb6712408fb791849969f9766dcdeb5868 /YWD/src/main/java/fyresmodjam/tileentities | |
Initial commit
Diffstat (limited to 'YWD/src/main/java/fyresmodjam/tileentities')
8 files changed, 729 insertions, 0 deletions
diff --git a/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystal.java b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystal.java new file mode 100755 index 0000000..3960f45 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystal.java @@ -0,0 +1,56 @@ +package fyresmodjam.tileentities;
+
+import java.util.Random;
+
+import fyresmodjam.items.ItemCrystal;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntityCrystal extends TileEntity {
+ public TileEntityCrystal() {
+ }
+
+ public static Random random = new Random();
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+
+ if (random.nextInt(4) == 0) {
+ worldObj.spawnParticle(
+ ItemCrystal.particleNames[getBlockMetadata()
+ % ItemCrystal.particleNames.length],
+ xCoord + random.nextFloat(),
+ yCoord + random.nextFloat(),
+ zCoord + random.nextFloat(), 0.0f,
+ 0.0f, 0.0f);
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1NBTTagCompound) {
+ super.writeToNBT(par1NBTTagCompound);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound par1NBTTagCompound) {
+ super.readFromNBT(par1NBTTagCompound);
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord,
+ zCoord, 1, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net,
+ S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystalStand.java b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystalStand.java new file mode 100755 index 0000000..e0ce64e --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityCrystalStand.java @@ -0,0 +1,41 @@ +package fyresmodjam.tileentities;
+
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntityCrystalStand extends TileEntity {
+ public TileEntityCrystalStand() {
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1NBTTagCompound) {
+ super.writeToNBT(par1NBTTagCompound);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound par1NBTTagCompound) {
+ super.readFromNBT(par1NBTTagCompound);
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord,
+ zCoord, 1, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net,
+ S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/tileentities/TileEntityPillar.java b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityPillar.java new file mode 100755 index 0000000..bf36e06 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityPillar.java @@ -0,0 +1,179 @@ +package fyresmodjam.tileentities;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.misc.ConfigData;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.world.EnumSkyBlock;
+
+public class TileEntityPillar extends TileEntity {
+ /*
+ * @formatter:off
+
+ public static String[] validBlessings = {
+ "Miner",
+ "Lumberjack",
+ "Warrior",
+ "Hunter",
+ "Swamp",
+ "Thief",
+ "Ninja",
+ "Mechanic",
+ "Alchemist",
+ "Scout",
+ "Guardian",
+ "Vampire",
+ "Inferno",
+ "Diver",
+ "Berserker",
+ "Loner",
+ "Paratrooper",
+ "Porcupine",
+ "Looter",
+ "Scholar",
+ "Thick-Skinned"
+ };
+
+ public static String[] validMobBlessings = {
+ "Warrior",
+ "Hunter",
+ "Swamp",
+ "Guardian",
+ "Vampire",
+ "Inferno",
+ "Loner",
+ "Paratrooper",
+ "Porcupine",
+ "Thick-Skinned"
+ };
+
+ public static String[] blessingDescriptions = {
+ "+25% breaking speed on stone and iron blocks, and +20% damage with pickaxes",
+ "+25% breaking speed on wooden blocks, and +15% damage with axes",
+ "+20% melee damage",
+ "+20% projectile damage",
+ "Attacks will slow enemies",
+ "Enemies have a chance to drop gold nuggets",
+ "While sneaking, you are invisble, and attacks on enemies with full health"
+ + " do double damage",
+ "@@\u00A7ePASSIVE - \u00A7oYou disarm traps 3x as often and have"
+ + " 2x the chance to salvage disarmed traps"
+ + ".@@\u00A7eACTIVE - \u00A7oOnce per day, you may disarm and"
+ + " salvage target trap for free",
+ "All potions act like wildcard potions",
+ "You can see traps without sneaking, but take 25% more damage from traps",
+ "Take 20% less damage from all sources",
+ "Heal 7% of damage dealt to enemies and, in direct sunlight,"
+ + " you take 20% more damage and deal 20% less damage",
+ "You don't take fire damage and do +35% damage while on fire,"
+ + " but take damage when wet",
+ "You can breathe underwater",
+ "@@\u00A7ePASSIVE - \u00A7oKills are added as berserk charges. (10 max)"
+ + "@@\u00A7eACTIVE - \u00A7o"
+ + "Turn on/off berserk mode. While berserk mode is active,"
+ + " you do 30% more damage,"
+ + " and expend a counter every 2 seconds",
+ "The lower your health, the higher your damage, to a maximum of +35%",
+ "You don't take fall damage",
+ "Melee attackers take received damage",
+ "Enemies have a chance to drop dungeon loot",
+ "Do bonus damage with weapons you are familiar with, and"
+ + " against enemies you are familiar with",
+ "Reduce damage taken by 2 points (1 heart)" };
+
+
+ * @formatter:on
+ */
+
+ public String blessing = null;
+
+ public TileEntityPillar() {
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+
+ if (worldObj.isRemote) {
+ spawnParticles();
+
+ if (ConfigData.pillarGlow) {
+ worldObj.updateLightByType(
+ EnumSkyBlock.Block, xCoord,
+ yCoord, zCoord);
+ }
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void spawnParticles() {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ if (player != null && BlessingUtils.hasBlessing(player)
+ && BlessingUtils.hasBlessing(player,
+ blessing)) {
+ for (int i = 0; i < 2; i++) {
+ worldObj.spawnParticle("portal", xCoord
+ + ModjamMod.r.nextDouble(),
+ yCoord + ModjamMod.r
+ .nextDouble()
+ * 2,
+ zCoord + ModjamMod.r
+ .nextDouble(),
+ (ModjamMod.r.nextDouble()
+ - 0.5D)
+ * 2.0D,
+ -ModjamMod.r.nextDouble(),
+ (ModjamMod.r.nextDouble()
+ - 0.5D)
+ * 2.0D);
+ }
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1NBTTagCompound) {
+ super.writeToNBT(par1NBTTagCompound);
+ if (blessing == null) {
+ blessing = BlessingUtils.getPlayerBlessing();
+ }
+ par1NBTTagCompound.setString("Blessing", blessing);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound par1NBTTagCompound) {
+ super.readFromNBT(par1NBTTagCompound);
+ blessing = par1NBTTagCompound.hasKey("Blessing")
+ ? par1NBTTagCompound.getString("Blessing")
+ : BlessingUtils.getPlayerBlessing();
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord,
+ zCoord, 1, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net,
+ S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public AxisAlignedBB getRenderBoundingBox() {
+ return INFINITE_EXTENT_AABB;
+ }
+}
\ No newline at end of file diff --git a/YWD/src/main/java/fyresmodjam/tileentities/TileEntityTrap.java b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityTrap.java new file mode 100755 index 0000000..2353adb --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/TileEntityTrap.java @@ -0,0 +1,162 @@ +package fyresmodjam.tileentities;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.handlers.NewPacketHandler;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.AxisAlignedBB;
+
+public class TileEntityTrap extends TileEntity {
+
+ public static String[] settings = {
+ "invisible to and damages all but player",
+ "visible to all and damages all but player",
+ "visible to all and only damages mobs",
+ "decorative"
+ };
+
+ public String placedBy = null;
+ public int setting = 0;
+
+ public TileEntityTrap() {
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+
+ if (worldObj.isRemote) {
+ spawnParticles();
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1NBTTagCompound) {
+ super.writeToNBT(par1NBTTagCompound);
+
+ if (placedBy != null) {
+ par1NBTTagCompound.setString("PlacedBy", placedBy);
+ }
+ par1NBTTagCompound.setInteger("Setting",
+ setting % settings.length);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound par1NBTTagCompound) {
+ super.readFromNBT(par1NBTTagCompound);
+
+ if (par1NBTTagCompound.hasKey("PlacedBy")) {
+ placedBy = par1NBTTagCompound
+ .getString("PlacedBy");
+ } else {
+ placedBy = null;
+ }
+
+ if (par1NBTTagCompound.hasKey("Setting")) {
+ setting = par1NBTTagCompound.getInteger("Setting")
+ % settings.length;
+ }
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord,
+ zCoord, 1, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net,
+ S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public AxisAlignedBB getRenderBoundingBox() {
+ return INFINITE_EXTENT_AABB;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public double getMaxRenderDistanceSquared() {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ return (player != null && (player.getCommandSenderName()
+ .equals(placedBy) || setting != 0))
+ ? 4096.0F
+ : 36.0F;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void spawnParticles() {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ int type = worldObj.getBlockMetadata(xCoord, yCoord,
+ zCoord);
+
+ if (player != null
+ && (!NewPacketHandler.trapsDisabled
+ || placedBy != null)
+ && (player.getCommandSenderName()
+ .equals(placedBy)
+ || player.isSneaking()
+ || setting != 0
+ || (BlessingUtils
+ .hasBlessing(player,
+ "MarkScouting")))
+ && getDistanceFrom(
+ TileEntityRendererDispatcher.staticPlayerX,
+ TileEntityRendererDispatcher.staticPlayerY,
+ TileEntityRendererDispatcher.staticPlayerZ) < (player
+ .getCommandSenderName()
+ .equals(placedBy)
+ ? 4096
+ : 36.0F)) {
+ if (type == 1) {
+ if (ModjamMod.r.nextInt(5) == 0) {
+ worldObj.spawnParticle("smoke",
+ xCoord + 0.5F,
+ yCoord + 0.175F,
+ zCoord + 0.5F,
+ (ModjamMod.r.nextFloat()
+ - 0.5F)
+ / 16,
+ ModjamMod.r.nextFloat()
+ / 16,
+ (ModjamMod.r.nextFloat()
+ - 0.5F)
+ / 16);
+ }
+ worldObj.spawnParticle("flame",
+ xCoord + 0.5F,
+ yCoord + 0.175F,
+ zCoord + 0.5F, 0.0F, 0.0F,
+ 0.0F);
+ } else if (type == 2) {
+ for (int i = 0; i < 3; i++) {
+ worldObj.spawnParticle("smoke",
+ xCoord + 0.5F,
+ yCoord + 0.175F,
+ zCoord + 0.5F,
+ (ModjamMod.r.nextFloat()
+ - 0.5F)
+ / 16,
+ ModjamMod.r.nextFloat()
+ / 16,
+ (ModjamMod.r.nextFloat()
+ - 0.5F)
+ / 16);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalRenderer.java b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalRenderer.java new file mode 100755 index 0000000..7d64e51 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalRenderer.java @@ -0,0 +1,72 @@ +package fyresmodjam.tileentities.renderers;
+
+import java.awt.Color;
+
+import org.lwjgl.opengl.GL11;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.items.ItemCrystal;
+import fyresmodjam.models.ModelCrystal;
+import fyresmodjam.tileentities.TileEntityCrystal;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+public class TileEntityCrystalRenderer extends TileEntitySpecialRenderer {
+
+ private ModelCrystal modelCrystal = new ModelCrystal();
+
+ public static ResourceLocation texture = new ResourceLocation(
+ "fyresmodjam", "textures/blocks/crystal.png");
+
+ @Override
+ public void renderTileEntityAt(TileEntity tileentity, double d0,
+ double d1, double d2, float f) {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) d0, (float) d1, (float) d2);
+
+ TileEntityCrystal crystal = (TileEntityCrystal) tileentity;
+ Block block = ModjamMod.crystal;
+ World world = crystal.getWorldObj();
+
+ Tessellator tessellator = Tessellator.instance;
+ float f2 = block.getMixedBrightnessForBlock(world,
+ crystal.xCoord, crystal.yCoord,
+ crystal.zCoord);
+ int l = world.getLightBrightnessForSkyBlocks(
+ crystal.xCoord, crystal.yCoord,
+ crystal.zCoord, 0);
+ int l1 = l % 65536;
+ int l2 = l / 65536;
+ tessellator.setColorOpaque_F(f2, f2, f2);
+ OpenGlHelper.setLightmapTextureCoords(
+ OpenGlHelper.lightmapTexUnit, l1, l2);
+
+ float f3 = world.getWorldInfo().getWorldTime() % 20
+ / 20.0F;
+ GL11.glTranslatef(0.5F,
+ -0.4F + (f3 > 0.5F ? 0.25F - 0.25F * f3
+ : 0.25F * f3),
+ 0.5F);
+
+ GL11.glRotatef((float) world.getWorldInfo().getWorldTime()
+ % 360, 0.0F, 1.0F, 0.0F);
+
+ Color color = ItemCrystal.colors[crystal.getBlockMetadata()
+ % ItemCrystal.colors.length];
+ GL11.glColor3f(color.getRed() / 255.0F,
+ color.getGreen() / 255.0F,
+ color.getBlue() / 255.0F);
+
+ bindTexture(texture);
+ modelCrystal.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
+ 0.0625F);
+
+ GL11.glPopMatrix();
+ }
+
+}
diff --git a/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalStandRenderer.java b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalStandRenderer.java new file mode 100755 index 0000000..55873f9 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityCrystalStandRenderer.java @@ -0,0 +1,57 @@ +package fyresmodjam.tileentities.renderers;
+
+import org.lwjgl.opengl.GL11;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.models.ModelCrystalStand;
+import fyresmodjam.tileentities.TileEntityCrystalStand;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+public class TileEntityCrystalStandRenderer
+ extends TileEntitySpecialRenderer {
+
+ private ModelCrystalStand model = new ModelCrystalStand();
+
+ public static ResourceLocation texture = new ResourceLocation(
+ "fyresmodjam",
+ "textures/blocks/crystal_stand.png");
+
+ @Override
+ public void renderTileEntityAt(TileEntity tileentity, double d0,
+ double d1, double d2, float f) {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) d0, (float) d1, (float) d2);
+
+ TileEntityCrystalStand crystalStand = (TileEntityCrystalStand) tileentity;
+ Block block = ModjamMod.crystalStand;
+ World world = crystalStand.getWorldObj();
+
+ Tessellator tessellator = Tessellator.instance;
+ float f2 = block.getMixedBrightnessForBlock(world,
+ crystalStand.xCoord, crystalStand.yCoord,
+ crystalStand.zCoord);
+ int l = world.getLightBrightnessForSkyBlocks(
+ crystalStand.xCoord, crystalStand.yCoord,
+ crystalStand.zCoord, 0);
+ int l1 = l % 65536;
+ int l2 = l / 65536;
+ tessellator.setColorOpaque_F(f2, f2, f2);
+ OpenGlHelper.setLightmapTextureCoords(
+ OpenGlHelper.lightmapTexUnit, l1, l2);
+
+ GL11.glTranslatef(0.5F, 1.5F, 0.5F);
+ GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
+
+ bindTexture(texture);
+ model.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
+
+ GL11.glPopMatrix();
+ }
+
+}
diff --git a/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityPillarRenderer.java b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityPillarRenderer.java new file mode 100755 index 0000000..7d38d20 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityPillarRenderer.java @@ -0,0 +1,70 @@ +package fyresmodjam.tileentities.renderers;
+
+import org.lwjgl.opengl.GL11;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.models.ModelPillar;
+import fyresmodjam.tileentities.TileEntityPillar;
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+public class TileEntityPillarRenderer extends TileEntitySpecialRenderer {
+ private ModelPillar modelPillar = new ModelPillar();
+
+ public static ResourceLocation[] textures = {
+ new ResourceLocation("fyresmodjam",
+ "textures/blocks/pillar.png"),
+ new ResourceLocation("fyresmodjam",
+ "textures/blocks/pillarActive.png")
+ };
+
+ @Override
+ public void renderTileEntityAt(TileEntity tileEntity, double d,
+ double d1, double d2, float f) {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) d, (float) d1, (float) d2);
+ TileEntityPillar tileEntityYour = (TileEntityPillar) tileEntity;
+ renderBlockYour(tileEntityYour, tileEntity.getWorldObj(),
+ tileEntity.xCoord, tileEntity.yCoord,
+ tileEntity.zCoord, ModjamMod.blockPillar);
+ GL11.glPopMatrix();
+ }
+
+ public void renderBlockYour(TileEntityPillar tl, World world,
+ int i, int j, int k, Block block) {
+ Tessellator tessellator = Tessellator.instance;
+ float f = block.getMixedBrightnessForBlock(world, i, j, k);
+ int l = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
+ int l1 = l % 65536;
+ int l2 = l / 65536;
+ tessellator.setColorOpaque_F(f, f, f);
+ OpenGlHelper.setLightmapTextureCoords(
+ OpenGlHelper.lightmapTexUnit, l1, l2);
+
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ boolean active = player != null
+ && player.getEntityData()
+ .hasKey("Blessing")
+ && player.getEntityData()
+ .getString("Blessing")
+ .equals(tl.blessing);
+
+ GL11.glPushMatrix();
+
+ GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
+ GL11.glTranslatef(0.5F, -1.5F, -0.5F);
+
+ bindTexture(!active ? textures[0] : textures[1]);
+ modelPillar.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F,
+ 0.0F, 0.0625F);
+ GL11.glPopMatrix();
+ }
+}
\ No newline at end of file diff --git a/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityTrapRenderer.java b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityTrapRenderer.java new file mode 100755 index 0000000..c66f06a --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/tileentities/renderers/TileEntityTrapRenderer.java @@ -0,0 +1,92 @@ +package fyresmodjam.tileentities.renderers;
+
+import org.lwjgl.opengl.GL11;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blocks.BlockTrap;
+import fyresmodjam.handlers.NewPacketHandler;
+import fyresmodjam.models.ModelSpikes;
+import fyresmodjam.models.ModelTrap2;
+import fyresmodjam.tileentities.TileEntityTrap;
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+public class TileEntityTrapRenderer extends TileEntitySpecialRenderer {
+
+ private ModelBase[] models = {
+ new ModelSpikes(), new ModelTrap2(),
+ new ModelTrap2()
+ };
+
+ public static ResourceLocation[] textures = {
+ new ResourceLocation("fyresmodjam",
+ "textures/blocks/spikes.png"),
+ new ResourceLocation("fyresmodjam",
+ "textures/blocks/trap2.png"),
+ new ResourceLocation("fyresmodjam",
+ "textures/blocks/trap3.png")
+ };
+
+ @Override
+ public void renderTileEntityAt(TileEntity tileEntity, double d,
+ double d1, double d2, float f) {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) d, (float) d1, (float) d2);
+ TileEntityTrap tileEntityYour = (TileEntityTrap) tileEntity;
+ renderBlockYour(tileEntityYour, tileEntity.getWorldObj(),
+ tileEntity.xCoord, tileEntity.yCoord,
+ tileEntity.zCoord, ModjamMod.blockTrap);
+ GL11.glPopMatrix();
+ }
+
+ public void renderBlockYour(TileEntityTrap tl, World world, int i,
+ int j, int k, Block block) {
+ Tessellator tessellator = Tessellator.instance;
+ float f = block.getMixedBrightnessForBlock(world, i, j, k);
+ int l = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
+ int l1 = l % 65536;
+ int l2 = l / 65536;
+ tessellator.setColorOpaque_F(f, f, f);
+ OpenGlHelper.setLightmapTextureCoords(
+ OpenGlHelper.lightmapTexUnit, l1, l2);
+
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ boolean active = player != null
+ && (!NewPacketHandler.trapsDisabled
+ || tl.placedBy != null)
+ && (player.getCommandSenderName()
+ .equals(tl.placedBy)
+ || tl.setting != 0
+ || player.isSneaking()
+ || (player.getEntityData()
+ .hasKey("Blessing")
+ && player.getEntityData()
+ .getString("Blessing")
+ .equals("Scout")));
+
+ int type = world.getBlockMetadata(i, j, k);
+
+ if (active) {
+ GL11.glPushMatrix();
+
+ GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
+ GL11.glTranslatef(0.5F, -1.5F, -0.5F);
+
+ bindTexture(textures[type % BlockTrap.trapTypes]);
+ models[type % BlockTrap.trapTypes].render(
+ (Entity) null, 0.0F, 0.0F, 0.0F,
+ 0.0F, 0.0F, 0.0625F);
+
+ GL11.glPopMatrix();
+ }
+ }
+}
\ No newline at end of file |
