mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
memepack release
This commit is contained in:
parent
8d481b21a0
commit
6ca0b4d2b5
@ -2187,6 +2187,19 @@ tile.glass_trinitite.name=Trinity-Glas
|
||||
tile.glass_uranium.name=Uranglas
|
||||
tile.gravel_diamond.name=Diamantkies
|
||||
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.iter.name=Kernfusionsreaktor
|
||||
tile.launch_pad.name=Raketenabschussrampe
|
||||
|
||||
@ -2187,6 +2187,19 @@ tile.glass_trinitite.name=Trinity Glass
|
||||
tile.glass_uranium.name=Uranium Glass
|
||||
tile.gravel_diamond.name=Diamond Gravel
|
||||
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.iter.name=Fusion Reactor
|
||||
tile.launch_pad.name=Missile Launch Pad
|
||||
|
||||
BIN
src/main/java/assets/hbm/textures/blocks/hadron_analysis.png
Normal file
BIN
src/main/java/assets/hbm/textures/blocks/hadron_analysis.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 375 B |
Binary file not shown.
|
After Width: | Height: | Size: 352 B |
@ -456,6 +456,8 @@ public class ModBlocks {
|
||||
public static Block hadron_coil_starmetal;
|
||||
public static Block hadron_power;
|
||||
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_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_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_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_blue;
|
||||
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_starmetal, hadron_coil_starmetal.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_blue;
|
||||
|
||||
@ -134,8 +134,11 @@ public class ArmorUtil {
|
||||
"bronze",
|
||||
"electrum",
|
||||
"t45",
|
||||
"bj",
|
||||
"starmetal",
|
||||
"hazmat", //also count because rubber is insulating
|
||||
"rubber"
|
||||
"rubber",
|
||||
"spacesuit"
|
||||
};
|
||||
|
||||
public static boolean isFaradayArmor(Item item) {
|
||||
|
||||
@ -3573,6 +3573,7 @@ public class ModItems {
|
||||
|
||||
t45_helmet = new ArmorT45(MainRegistry.aMatT45, 2, 0, 1000000, 10000, 1000).setCap(6.5F).setMod(0.25F)
|
||||
.setFireproof(true)
|
||||
.enableVATS(true)
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
|
||||
.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)
|
||||
.setFireproof(true)
|
||||
.enableVATS(true)
|
||||
.enableThermalSight(true)
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0))
|
||||
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))
|
||||
|
||||
@ -46,6 +46,7 @@ public class ArmorFSB extends ItemArmor {
|
||||
public float damageMod = -1;
|
||||
public boolean fireproof = false;
|
||||
public boolean noHelmet = false;
|
||||
public boolean vats = false;
|
||||
public boolean thermal = false;
|
||||
public double gravity = 0;
|
||||
public String step;
|
||||
@ -92,6 +93,11 @@ public class ArmorFSB extends ItemArmor {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB enableVATS(boolean vats) {
|
||||
this.vats = vats;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB enableThermalSight(boolean thermal) {
|
||||
this.thermal = thermal;
|
||||
return this;
|
||||
@ -132,6 +138,7 @@ public class ArmorFSB extends ItemArmor {
|
||||
this.blastProtection = original.blastProtection;
|
||||
this.fireproof = original.fireproof;
|
||||
this.noHelmet = original.noHelmet;
|
||||
this.vats = original.vats;
|
||||
this.thermal = original.thermal;
|
||||
this.gravity = original.gravity;
|
||||
this.step = original.step;
|
||||
@ -186,6 +193,10 @@ public class ArmorFSB extends ItemArmor {
|
||||
list.add(EnumChatFormatting.RED + " Fireproof");
|
||||
}
|
||||
|
||||
if(vats) {
|
||||
list.add(EnumChatFormatting.RED + " Enemy HUD");
|
||||
}
|
||||
|
||||
if(thermal) {
|
||||
list.add(EnumChatFormatting.RED + " Thermal Sight");
|
||||
}
|
||||
@ -263,20 +274,23 @@ public class ArmorFSB extends ItemArmor {
|
||||
|
||||
ArmorFSB chestplate = (ArmorFSB)player.inventory.armorInventory[2].getItem();
|
||||
|
||||
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.blastProtection != -1 && event.source.isExplosion()) {
|
||||
event.ammount *= chestplate.blastProtection;
|
||||
}
|
||||
|
||||
if(chestplate.damageCap != -1) {
|
||||
event.ammount = Math.min(event.ammount, chestplate.damageCap);
|
||||
if(event.ammount < 100) {
|
||||
|
||||
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.blastProtection != -1 && event.source.isExplosion()) {
|
||||
event.ammount *= chestplate.blastProtection;
|
||||
}
|
||||
|
||||
if(chestplate.damageCap != -1) {
|
||||
event.ammount = Math.min(event.ammount, chestplate.damageCap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
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:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -27,6 +27,7 @@ import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.render.anim.HbmAnimations.Animation;
|
||||
import com.hbm.render.util.RenderAccessoryUtility;
|
||||
import com.hbm.render.util.RenderOverhead;
|
||||
import com.hbm.render.util.RenderScreenOverlay;
|
||||
import com.hbm.render.util.SoyuzPronter;
|
||||
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.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;
|
||||
@ -69,6 +71,7 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraftforge.client.event.MouseEvent;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
|
||||
import net.minecraftforge.client.event.RenderLivingEvent;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
@ -386,94 +389,37 @@ public class ModEventHandlerClient {
|
||||
ArmorFSB chestplate = (ArmorFSB)plate.getItem();
|
||||
|
||||
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;
|
||||
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) {
|
||||
if(ArmorFSB.hasFSBArmor(player)) {
|
||||
ItemStack plate = player.inventory.armorInventory[2];
|
||||
ArmorFSB chestplate = (ArmorFSB)plate.getItem();
|
||||
|
||||
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);
|
||||
if(chestplate.vats) {
|
||||
|
||||
int count = (int)Math.min(event.entity.getMaxHealth(), 100);
|
||||
|
||||
int bars = (int)Math.ceil(event.entity.getHealth() * count / event.entity.getMaxHealth());
|
||||
|
||||
String bar = EnumChatFormatting.RED + "";
|
||||
|
||||
for(int i = 0; i < count; i++) {
|
||||
|
||||
if(i == bars)
|
||||
bar += EnumChatFormatting.RESET + "";
|
||||
|
||||
bar += "|";
|
||||
}
|
||||
RenderOverhead.renderTag(event.entity, event.x, event.y, event.z, event.renderer, bar, chestplate.thermal);
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
@ -4,30 +4,31 @@ import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
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
|
||||
public byte getMiniBlockCount(ItemStack stack, byte original)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
@Override
|
||||
public byte getMiniBlockCount(ItemStack stack, byte original) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte getMiniItemCount(ItemStack stack, byte original)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
@Override
|
||||
public byte getMiniItemCount(ItemStack stack, byte original) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldBob()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean shouldBob() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSpreadItems()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean shouldSpreadItems() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
187
src/main/java/com/hbm/render/util/RenderOverhead.java
Normal file
187
src/main/java/com/hbm/render/util/RenderOverhead.java
Normal 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();
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user