memepack release

This commit is contained in:
Bob 2020-11-27 20:13:59 +01:00
parent 8d481b21a0
commit 6ca0b4d2b5
12 changed files with 305 additions and 119 deletions

View File

@ -2187,6 +2187,19 @@ tile.glass_trinitite.name=Trinity-Glas
tile.glass_uranium.name=Uranglas tile.glass_uranium.name=Uranglas
tile.gravel_diamond.name=Diamantkies tile.gravel_diamond.name=Diamantkies
tile.gravel_obsidian.name=Gebrochener Obsidian tile.gravel_obsidian.name=Gebrochener Obsidian
tile.hadron_analysis.name=Partikelbeschleuniger-Analysekammernwand
tile.hadron_analysis.name=Partikelbeschleuniger-Analysekammernfenster
tile.hadron_coil_alloy.name=Dichte Supraleiterspule
tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule
tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule
tile.hadron_diode.name=Schottky-Partikeldiode
tile.hadron_plating.name=Partikelbeschleuniger-Außenwand
tile.hadron_plating_black.name=Partikelbeschleuniger-Außenwand (Schwarz)
tile.hadron_plating_blue.name=Partikelbeschleuniger-Außenwand (Blau)
tile.hadron_plating_glass.name=Partikelbeschleuniger-Außenwand (Fenster)
tile.hadron_plating_striped.name=Partikelbeschleuniger-Außenwand (Coole Gefahrenstreifen)
tile.hadron_plating_voltz.name=Partikelbeschleuniger-Außenwand (VOLTZ)
tile.hadron_plating_yellow.name=Partikelbeschleuniger-Außenwand (Gelb)
tile.hazmat.name=Strahlenschutzstoff-Block tile.hazmat.name=Strahlenschutzstoff-Block
tile.iter.name=Kernfusionsreaktor tile.iter.name=Kernfusionsreaktor
tile.launch_pad.name=Raketenabschussrampe tile.launch_pad.name=Raketenabschussrampe

View File

@ -2187,6 +2187,19 @@ tile.glass_trinitite.name=Trinity Glass
tile.glass_uranium.name=Uranium Glass tile.glass_uranium.name=Uranium Glass
tile.gravel_diamond.name=Diamond Gravel tile.gravel_diamond.name=Diamond Gravel
tile.gravel_obsidian.name=Crushed Obsidian tile.gravel_obsidian.name=Crushed Obsidian
tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall
tile.hadron_analysis_glass.name=Particle Accelerator Analysis Chamber Window
tile.hadron_coil_alloy.name=Dense Super Conducting Coil
tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil
tile.hadron_coil_starmetal.name=Dense Starmetal Coil
tile.hadron_diode.name=Schottky Particle Diode
tile.hadron_plating.name=Particle Accelerator Plating
tile.hadron_plating_black.name=Particle Accelerator Plating (Black)
tile.hadron_plating_blue.name=Particle Accelerator Plating (Blue)
tile.hadron_plating_glass.name=Particle Accelerator Plating (Window)
tile.hadron_plating_striped.name=Particle Accelerator Plating (Cool Hazard Stripes)
tile.hadron_plating_voltz.name=Particle Accelerator Plating (VOLTZ)
tile.hadron_plating_yellow.name=Particle Accelerator Plating (Yellow)
tile.hazmat.name=Hazmat Cloth Block tile.hazmat.name=Hazmat Cloth Block
tile.iter.name=Fusion Reactor tile.iter.name=Fusion Reactor
tile.launch_pad.name=Missile Launch Pad tile.launch_pad.name=Missile Launch Pad

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

View File

@ -456,6 +456,8 @@ public class ModBlocks {
public static Block hadron_coil_starmetal; public static Block hadron_coil_starmetal;
public static Block hadron_power; public static Block hadron_power;
public static Block hadron_diode; public static Block hadron_diode;
public static Block hadron_analysis;
public static Block hadron_analysis_glass;
public static Block hadron_access; public static Block hadron_access;
public static Block hadron_core; public static Block hadron_core;
@ -1200,7 +1202,9 @@ public class ModBlocks {
hadron_coil_schrabidium = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidium"); hadron_coil_schrabidium = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidium");
hadron_coil_starmetal = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal"); hadron_coil_starmetal = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal");
hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis");
hadron_analysis_glass = new BlockNTMGlass(RefStrings.MODID + ":hadron_analysis_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass");
/*public static Block hadron_plating; /*public static Block hadron_plating;
public static Block hadron_plating_blue; public static Block hadron_plating_blue;
public static Block hadron_plating_black; public static Block hadron_plating_black;
@ -1987,6 +1991,8 @@ public class ModBlocks {
GameRegistry.registerBlock(hadron_coil_schrabidium, hadron_coil_schrabidium.getUnlocalizedName()); GameRegistry.registerBlock(hadron_coil_schrabidium, hadron_coil_schrabidium.getUnlocalizedName());
GameRegistry.registerBlock(hadron_coil_starmetal, hadron_coil_starmetal.getUnlocalizedName()); GameRegistry.registerBlock(hadron_coil_starmetal, hadron_coil_starmetal.getUnlocalizedName());
GameRegistry.registerBlock(hadron_diode, hadron_diode.getUnlocalizedName()); GameRegistry.registerBlock(hadron_diode, hadron_diode.getUnlocalizedName());
GameRegistry.registerBlock(hadron_analysis, hadron_analysis.getUnlocalizedName());
GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName());
/*public static Block hadron_plating; /*public static Block hadron_plating;
public static Block hadron_plating_blue; public static Block hadron_plating_blue;

View File

@ -134,8 +134,11 @@ public class ArmorUtil {
"bronze", "bronze",
"electrum", "electrum",
"t45", "t45",
"bj",
"starmetal",
"hazmat", //also count because rubber is insulating "hazmat", //also count because rubber is insulating
"rubber" "rubber",
"spacesuit"
}; };
public static boolean isFaradayArmor(Item item) { public static boolean isFaradayArmor(Item item) {

View File

@ -3573,6 +3573,7 @@ public class ModItems {
t45_helmet = new ArmorT45(MainRegistry.aMatT45, 2, 0, 1000000, 10000, 1000).setCap(6.5F).setMod(0.25F) t45_helmet = new ArmorT45(MainRegistry.aMatT45, 2, 0, 1000000, 10000, 1000).setCap(6.5F).setMod(0.25F)
.setFireproof(true) .setFireproof(true)
.enableVATS(true)
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
.setBlastProtection(0.5F) .setBlastProtection(0.5F)
@ -3635,7 +3636,9 @@ public class ModItems {
bj_helmet = new ArmorBJ(MainRegistry.aMatStarmetal, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).setMod(0.25F).setCap(4.0F) bj_helmet = new ArmorBJ(MainRegistry.aMatStarmetal, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).setMod(0.25F).setCap(4.0F)
.setFireproof(true) .setFireproof(true)
.enableVATS(true)
.enableThermalSight(true) .enableThermalSight(true)
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
.addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .addEffect(new PotionEffect(Potion.jump.id, 20, 0))
.addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0)) .addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0))
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))

View File

@ -46,6 +46,7 @@ public class ArmorFSB extends ItemArmor {
public float damageMod = -1; public float damageMod = -1;
public boolean fireproof = false; public boolean fireproof = false;
public boolean noHelmet = false; public boolean noHelmet = false;
public boolean vats = false;
public boolean thermal = false; public boolean thermal = false;
public double gravity = 0; public double gravity = 0;
public String step; public String step;
@ -92,6 +93,11 @@ public class ArmorFSB extends ItemArmor {
return this; return this;
} }
public ArmorFSB enableVATS(boolean vats) {
this.vats = vats;
return this;
}
public ArmorFSB enableThermalSight(boolean thermal) { public ArmorFSB enableThermalSight(boolean thermal) {
this.thermal = thermal; this.thermal = thermal;
return this; return this;
@ -132,6 +138,7 @@ public class ArmorFSB extends ItemArmor {
this.blastProtection = original.blastProtection; this.blastProtection = original.blastProtection;
this.fireproof = original.fireproof; this.fireproof = original.fireproof;
this.noHelmet = original.noHelmet; this.noHelmet = original.noHelmet;
this.vats = original.vats;
this.thermal = original.thermal; this.thermal = original.thermal;
this.gravity = original.gravity; this.gravity = original.gravity;
this.step = original.step; this.step = original.step;
@ -186,6 +193,10 @@ public class ArmorFSB extends ItemArmor {
list.add(EnumChatFormatting.RED + " Fireproof"); list.add(EnumChatFormatting.RED + " Fireproof");
} }
if(vats) {
list.add(EnumChatFormatting.RED + " Enemy HUD");
}
if(thermal) { if(thermal) {
list.add(EnumChatFormatting.RED + " Thermal Sight"); list.add(EnumChatFormatting.RED + " Thermal Sight");
} }
@ -263,20 +274,23 @@ public class ArmorFSB extends ItemArmor {
ArmorFSB chestplate = (ArmorFSB)player.inventory.armorInventory[2].getItem(); ArmorFSB chestplate = (ArmorFSB)player.inventory.armorInventory[2].getItem();
if(chestplate.damageMod != -1) { if(event.ammount < 100) {
event.ammount *= chestplate.damageMod;
} if(chestplate.damageMod != -1) {
event.ammount *= chestplate.damageMod;
if(chestplate.resistance.get(event.source.getDamageType()) != null) { }
event.ammount *= chestplate.resistance.get(event.source.getDamageType());
} if(chestplate.resistance.get(event.source.getDamageType()) != null) {
event.ammount *= chestplate.resistance.get(event.source.getDamageType());
if(chestplate.blastProtection != -1 && event.source.isExplosion()) { }
event.ammount *= chestplate.blastProtection;
} if(chestplate.blastProtection != -1 && event.source.isExplosion()) {
event.ammount *= chestplate.blastProtection;
if(chestplate.damageCap != -1) { }
event.ammount = Math.min(event.ammount, chestplate.damageCap);
if(chestplate.damageCap != -1) {
event.ammount = Math.min(event.ammount, chestplate.damageCap);
}
} }
} }
} }

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (3697)"; public static final String VERSION = "1.0.27 BETA (MEMEPACK)";
//HBM's Beta Naming Convention: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -27,6 +27,7 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations;
import com.hbm.render.anim.HbmAnimations.Animation; import com.hbm.render.anim.HbmAnimations.Animation;
import com.hbm.render.util.RenderAccessoryUtility; import com.hbm.render.util.RenderAccessoryUtility;
import com.hbm.render.util.RenderOverhead;
import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay;
import com.hbm.render.util.SoyuzPronter; import com.hbm.render.util.SoyuzPronter;
import com.hbm.sound.MovingSoundChopper; import com.hbm.sound.MovingSoundChopper;
@ -52,6 +53,7 @@ import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.boss.IBossDisplayData;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.item.EntityXPOrb;
@ -69,6 +71,7 @@ import net.minecraft.util.Vec3;
import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.MouseEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.TextureStitchEvent;
@ -386,94 +389,37 @@ public class ModEventHandlerClient {
ArmorFSB chestplate = (ArmorFSB)plate.getItem(); ArmorFSB chestplate = (ArmorFSB)plate.getItem();
if(chestplate.thermal) if(chestplate.thermal)
renderThermalSight(event.partialTicks); RenderOverhead.renderThermalSight(event.partialTicks);
} }
} }
public void renderThermalSight(float partialTicks) { @SubscribeEvent
public void preRenderEvent(RenderLivingEvent.Pre event) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
double x = player.prevPosX + (player.posX - player.prevPosX) * partialTicks;
double y = player.prevPosY + (player.posY - player.prevPosY) * partialTicks;
double z = player.prevPosZ + (player.posZ - player.prevPosZ) * partialTicks;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_COLOR_MATERIAL);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_POINT_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
Tessellator tess = Tessellator.instance; if(ArmorFSB.hasFSBArmor(player)) {
tess.startDrawing(GL11.GL_LINES); ItemStack plate = player.inventory.armorInventory[2];
ArmorFSB chestplate = (ArmorFSB)plate.getItem();
for(Object o : player.worldObj.loadedEntityList) {
Entity ent = (Entity) o; if(chestplate.vats) {
if(ent == player) int count = (int)Math.min(event.entity.getMaxHealth(), 100);
continue;
int bars = (int)Math.ceil(event.entity.getHealth() * count / event.entity.getMaxHealth());
if(ent.getDistanceSqToEntity(player) > 4096)
continue; String bar = EnumChatFormatting.RED + "";
if(ent instanceof IBossDisplayData) for(int i = 0; i < count; i++) {
tess.setColorOpaque_F(1F, 0.5F, 0F);
else if(ent instanceof EntityMob) if(i == bars)
tess.setColorOpaque_F(1F, 0F, 0F); bar += EnumChatFormatting.RESET + "";
else if(ent instanceof EntityPlayer)
tess.setColorOpaque_F(1F, 0F, 1F); bar += "|";
else if(ent instanceof EntityLiving) }
tess.setColorOpaque_F(0F, 1F, 0F); RenderOverhead.renderTag(event.entity, event.x, event.y, event.z, event.renderer, bar, chestplate.thermal);
else if(ent instanceof EntityItem) }
tess.setColorOpaque_F(1F, 1F, 0.5F);
else if(ent instanceof EntityXPOrb) {
if(player.ticksExisted % 10 < 5)
tess.setColorOpaque_F(1F, 1F, 0.5F);
else
tess.setColorOpaque_F(0.5F, 1F, 0.5F);
} else
continue;
AxisAlignedBB bb = ent.boundingBox;
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
} }
tess.draw();
tess.setColorOpaque_F(1F, 1F, 1F);
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_POINT_SMOOTH);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glPopMatrix();
} }
public static IIcon particleBase; public static IIcon particleBase;

View File

@ -4,30 +4,31 @@ import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class RenderDecoItem extends RenderItem { /**
public RenderDecoItem(TileEntitySpecialRenderer render) {} * For small items as part of a TESR, e.g. items in a press
* @author hbm
*/
public class RenderDecoItem extends RenderItem {
public RenderDecoItem(TileEntitySpecialRenderer render) {
}
@Override @Override
public byte getMiniBlockCount(ItemStack stack, byte original) public byte getMiniBlockCount(ItemStack stack, byte original) {
{ return 1;
return 1; }
}
@Override @Override
public byte getMiniItemCount(ItemStack stack, byte original) public byte getMiniItemCount(ItemStack stack, byte original) {
{ return 1;
return 1; }
}
@Override @Override
public boolean shouldBob() public boolean shouldBob() {
{ return false;
return false; }
}
@Override @Override
public boolean shouldSpreadItems() public boolean shouldSpreadItems() {
{ return false;
return false; }
}
} }

View File

@ -0,0 +1,187 @@
package com.hbm.render.util;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.boss.IBossDisplayData;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.AxisAlignedBB;
public class RenderOverhead {
public static void renderTag(EntityLivingBase living, double x, double y, double z, RendererLivingEntity renderer, String name, boolean depthTest) {
EntityPlayer thePlayer = Minecraft.getMinecraft().thePlayer;
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
if(shouldRenderTag(living)) {
float f = 1.6F;
double distSq = living.getDistanceSqToEntity(thePlayer);
float range = living.isSneaking() ? renderer.NAME_TAG_RANGE_SNEAK : renderer.NAME_TAG_RANGE;
if(distSq < (double) (range * range)) {
String s = name;
drawTagAware(living, x, y, z, name, depthTest);
}
}
}
protected static boolean shouldRenderTag(EntityLivingBase p_110813_1_) {
return Minecraft.isGuiEnabled() && p_110813_1_ != RenderManager.instance.livingPlayer && !p_110813_1_.isInvisibleToPlayer(Minecraft.getMinecraft().thePlayer) && p_110813_1_.riddenByEntity == null;
}
protected static void drawTagAware(EntityLivingBase entity, double x, double y, double z, String string, boolean depthTest) {
if(entity.isPlayerSleeping()) {
drawTag(entity, string, x, y - 1.5D, z, 64, depthTest);
} else {
drawTag(entity, string, x, y, z, 64, depthTest);
}
}
protected static void drawTag(Entity entity, String name, double x, double y, double z, int dist, boolean depthTest) {
double distsq = entity.getDistanceSqToEntity(RenderManager.instance.livingPlayer);
if(distsq <= (double) (dist * dist)) {
FontRenderer fontrenderer = Minecraft.getMinecraft().fontRenderer;
float f = 1.6F;
float scale = 0.016666668F * f;
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.0F, (float) y + entity.height + 0.75F, (float) z);
GL11.glNormal3f(0.0F, 1.0F, 0.0F);
GL11.glRotatef(-RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(RenderManager.instance.playerViewX, 1.0F, 0.0F, 0.0F);
GL11.glScalef(-scale, -scale, scale);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDepthMask(false);
if(depthTest) {
GL11.glDisable(GL11.GL_DEPTH_TEST);
}
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
Tessellator tessellator = Tessellator.instance;
byte heightOffset = 0;
if(name.equals("deadmau5")) {
heightOffset = -10;
}
GL11.glDisable(GL11.GL_TEXTURE_2D);
tessellator.startDrawingQuads();
int center = fontrenderer.getStringWidth(name) / 2;
tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F);
tessellator.addVertex((double) (-center - 1), (double) (-1 + heightOffset), 0.0D);
tessellator.addVertex((double) (-center - 1), (double) (8 + heightOffset), 0.0D);
tessellator.addVertex((double) (center + 1), (double) (8 + heightOffset), 0.0D);
tessellator.addVertex((double) (center + 1), (double) (-1 + heightOffset), 0.0D);
tessellator.draw();
GL11.glEnable(GL11.GL_TEXTURE_2D);
fontrenderer.drawString(name, -fontrenderer.getStringWidth(name) / 2, heightOffset, 553648127);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthMask(true);
fontrenderer.drawString(name, -fontrenderer.getStringWidth(name) / 2, heightOffset, -1);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
}
}
public static void renderThermalSight(float partialTicks) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
double x = player.prevPosX + (player.posX - player.prevPosX) * partialTicks;
double y = player.prevPosY + (player.posY - player.prevPosY) * partialTicks;
double z = player.prevPosZ + (player.posZ - player.prevPosZ) * partialTicks;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_COLOR_MATERIAL);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_POINT_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
Tessellator tess = Tessellator.instance;
tess.startDrawing(GL11.GL_LINES);
for(Object o : player.worldObj.loadedEntityList) {
Entity ent = (Entity) o;
if(ent == player)
continue;
if(ent.getDistanceSqToEntity(player) > 4096)
continue;
if(ent instanceof IBossDisplayData)
tess.setColorOpaque_F(1F, 0.5F, 0F);
else if(ent instanceof EntityMob)
tess.setColorOpaque_F(1F, 0F, 0F);
else if(ent instanceof EntityPlayer)
tess.setColorOpaque_F(1F, 0F, 1F);
else if(ent instanceof EntityLiving)
tess.setColorOpaque_F(0F, 1F, 0F);
else if(ent instanceof EntityItem)
tess.setColorOpaque_F(1F, 1F, 0.5F);
else if(ent instanceof EntityXPOrb) {
if(player.ticksExisted % 10 < 5)
tess.setColorOpaque_F(1F, 1F, 0.5F);
else
tess.setColorOpaque_F(0.5F, 1F, 0.5F);
} else
continue;
AxisAlignedBB bb = ent.boundingBox;
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z);
tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z);
}
tess.draw();
tess.setColorOpaque_F(1F, 1F, 1F);
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_POINT_SMOOTH);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glPopMatrix();
}
}