mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
hazmat armor classes
This commit is contained in:
parent
fe03c8155f
commit
ece2b63b7d
@ -47,6 +47,8 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.util.ArmorRegistry;
|
||||
import com.hbm.util.ArmorRegistry.HazardClass;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
|
||||
import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound;
|
||||
|
||||
@ -428,15 +430,23 @@ public class ModEventHandlerClient {
|
||||
ItemStack stack = event.itemStack;
|
||||
List<String> list = event.toolTip;
|
||||
|
||||
/// HAZMAT INFO ///
|
||||
List<HazardClass> hazInfo = ArmorRegistry.armor.get(stack.getItem());
|
||||
|
||||
if(hazInfo != null) {
|
||||
list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("hazard.prot"));
|
||||
for(HazardClass clazz : hazInfo) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey(clazz.lang));
|
||||
}
|
||||
}
|
||||
|
||||
/// CLADDING (LEGACY) ///
|
||||
double rad = HazmatRegistry.getResistance(stack);
|
||||
|
||||
rad = ((int)(rad * 1000)) / 1000D;
|
||||
if(rad > 0) list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.radResistance", rad));
|
||||
|
||||
if(rad > 0)
|
||||
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.radResistance", rad));
|
||||
|
||||
/// CUSTOM NUKE ///
|
||||
ComparableStack comp = new ComparableStack(stack).makeSingular();
|
||||
|
||||
CustomNukeEntry entry = TileEntityNukeCustom.entries.get(comp);
|
||||
|
||||
if(entry != null) {
|
||||
@ -451,6 +461,7 @@ public class ModEventHandlerClient {
|
||||
list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type);
|
||||
}
|
||||
|
||||
/// ARMOR MODS ///
|
||||
if(stack.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(stack)) {
|
||||
|
||||
if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && !(Minecraft.getMinecraft().currentScreen instanceof GUIArmorTable)) {
|
||||
@ -474,7 +485,7 @@ public class ModEventHandlerClient {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ResourceLocation ashes = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_ash.png");
|
||||
|
||||
|
||||
54
src/main/java/com/hbm/util/ArmorRegistry.java
Normal file
54
src/main/java/com/hbm/util/ArmorRegistry.java
Normal file
@ -0,0 +1,54 @@
|
||||
package com.hbm.util;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class ArmorRegistry {
|
||||
|
||||
public static HashMap<Item, List<HazardClass>> armor = new HashMap();
|
||||
|
||||
public static void registerArmor(Item item, HazardClass... hazards) {
|
||||
armor.put(item, Arrays.asList(hazards));
|
||||
}
|
||||
|
||||
public static boolean hasProtection(EntityPlayer player, int slot, HazardClass clazz) {
|
||||
|
||||
if(ArmorUtil.checkArmorNull(player, slot))
|
||||
return false;
|
||||
|
||||
List<HazardClass> list = armor.get(player.inventory.armorInventory[slot].getItem());
|
||||
|
||||
if(list == null)
|
||||
return false;
|
||||
|
||||
return list.contains(clazz);
|
||||
}
|
||||
|
||||
public static enum HazardClass {
|
||||
GAS_CHLORINE("hazard.gasChlorine"),
|
||||
GAS_MONOXIDE("hazard.gasMonoxide"),
|
||||
GAS_INERT("hazard.gasInert"),
|
||||
PARTICLE_COARSE("hazard.particleCoarse"),
|
||||
PARTICLE_FINE("hazard.particleFine"),
|
||||
BACTERIA("hazard.bacteria");
|
||||
|
||||
public final String lang;
|
||||
|
||||
private HazardClass(String lang) {
|
||||
this.lang = lang;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum ArmorClass {
|
||||
MASK_FILTERED,
|
||||
MASK_OXY,
|
||||
GOGGLES,
|
||||
HAZMAT_HEAT,
|
||||
HAZMAT_RADIATION,
|
||||
HAZMAT_BIO;
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ import com.hbm.handler.HazmatRegistry;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.util.ArmorRegistry.HazardClass;
|
||||
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -14,43 +15,29 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.NetHandlerPlayServer;
|
||||
|
||||
public class ArmorUtil {
|
||||
|
||||
public static boolean checkArmor(EntityPlayer player, Item helmet, Item plate, Item legs, Item boots) {
|
||||
|
||||
if(player.inventory.armorInventory[0] != null &&
|
||||
player.inventory.armorInventory[0].getItem() == boots &&
|
||||
player.inventory.armorInventory[1] != null &&
|
||||
player.inventory.armorInventory[1].getItem() == legs &&
|
||||
player.inventory.armorInventory[2] != null &&
|
||||
player.inventory.armorInventory[2].getItem() == plate &&
|
||||
player.inventory.armorInventory[3] != null &&
|
||||
player.inventory.armorInventory[3].getItem() == helmet)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
public static void register() {
|
||||
ArmorRegistry.registerArmor(ModItems.gas_mask, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE);
|
||||
ArmorRegistry.registerArmor(ModItems.gas_mask_m65, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE);
|
||||
ArmorRegistry.registerArmor(ModItems.gas_mask_mono, HazardClass.PARTICLE_COARSE, HazardClass.GAS_MONOXIDE);
|
||||
}
|
||||
|
||||
public static boolean checkArmorPiece(EntityPlayer player, Item armor, int slot)
|
||||
{
|
||||
if(player.inventory.armorInventory[slot] != null &&
|
||||
player.inventory.armorInventory[slot].getItem() == armor)
|
||||
{
|
||||
return true;
|
||||
public static boolean checkArmor(EntityPlayer player, Item... armor) {
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(!checkArmorPiece(player, armor[i], 3 - i))
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean checkArmorNull(EntityPlayer player, int slot)
|
||||
{
|
||||
if(player.inventory.armorInventory[slot] == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
public static boolean checkArmorPiece(EntityPlayer player, Item armor, int slot) {
|
||||
return !checkArmorNull(player, slot) && player.inventory.armorInventory[slot].getItem() == armor;
|
||||
}
|
||||
|
||||
public static boolean checkArmorNull(EntityPlayer player, int slot) {
|
||||
return player.inventory.armorInventory[slot] == null;
|
||||
}
|
||||
|
||||
public static void damageSuit(EntityPlayer player, int slot, int amount) {
|
||||
|
||||
@ -390,6 +390,14 @@ hadron.noresult=Kein Ergebnis.
|
||||
hadron.progress=Verarbeite...
|
||||
hadron.success=Abgeschlossen!
|
||||
|
||||
hazard.prot=Schützt vor Gefahren:
|
||||
hazard.bacteria=Bakterien / Aerosole
|
||||
hazard.gasChlorine=Giftgas
|
||||
hazard.gasInert=Träge Gase / Strickgas
|
||||
hazard.gasMonoxide=Kohlenstoffmonoxid
|
||||
hazard.particleCoarse=Partikel
|
||||
hazard.particleFine=Feinstaub
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.toggleBack=Rucksack umschalten
|
||||
hbm.key.toggleHUD=HUD umschalten
|
||||
|
||||
@ -458,6 +458,14 @@ hadron.noresult=No Result.
|
||||
hadron.progress=In Progress...
|
||||
hadron.success=Completed!
|
||||
|
||||
hazard.prot=Protects against hazards:
|
||||
hazard.bacteria=Bacteria / Aerosols
|
||||
hazard.gasChlorine=Chemical Gas
|
||||
hazard.gasInert=Inert Gas / Asphxiants
|
||||
hazard.gasMonoxide=Carbon Monoxide
|
||||
hazard.particleCoarse=Airborne Particles
|
||||
hazard.particleFine=Particulates
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.toggleBack=Toggle Backpack
|
||||
hbm.key.toggleHUD=Toggle HUD
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user