Merge remote-tracking branch 'HbmMods/master'
@ -2,6 +2,7 @@ package com.hbm.crafting;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.main.CraftingManager;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
@ -120,7 +121,7 @@ public class ConsumableRecipes {
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.fmn, 1), new Object[] { COAL.dust(), PO210.dust(), ST.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.pirfenidone, 1), new Object[] {COAL.dust(), KNO.dust(), ModItems.nugget_bismuth });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.five_htp, 1), new Object[] { COAL.dust(), EUPH.dust(), ModItems.canteen_fab });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cigarette, 16), new Object[] { ASBESTOS.ingot(), ModItems.oil_tar, PO210.nugget() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cigarette, 16), new Object[] { ASBESTOS.ingot(), ANY_TAR.any(), PO210.nugget() });
|
||||
|
||||
//Med bags
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote });
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package com.hbm.crafting;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemEnums.EnumCokeType;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.machine.ItemBattery;
|
||||
import com.hbm.items.special.ItemHot;
|
||||
|
||||
@ -93,9 +96,10 @@ public class SmeltingRecipes {
|
||||
GameRegistry.addSmelting(ModItems.powder_tantalium, new ItemStack(ModItems.ingot_tantalium), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.powder_niobium, new ItemStack(ModItems.ingot_niobium), 1.0F);
|
||||
|
||||
GameRegistry.addSmelting(ModItems.powder_coal, new ItemStack(ModItems.coke), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.briquette_lignite, new ItemStack(ModItems.coke), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.oil_tar, new ItemStack(ModItems.powder_coal), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.powder_coal, DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.briquette_lignite, DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), 1.0F);
|
||||
GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), new ItemStack(ModItems.powder_coal), 1.0F);
|
||||
GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK), new ItemStack(ModItems.powder_coal), 1.0F);
|
||||
|
||||
GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.tank_waste, new ItemStack(ModItems.tank_waste), 0.0F);
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.entity.mob.siege;
|
||||
|
||||
import com.hbm.entity.mob.EntityUFOBase;
|
||||
import com.hbm.entity.projectile.EntitySiegeLaser;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
@ -115,6 +116,8 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData
|
||||
for(ItemStack drop : this.getTier().dropItem) {
|
||||
this.entityDropItem(drop.copy(), 0F);
|
||||
}
|
||||
|
||||
this.entityDropItem(new ItemStack(ModItems.source, 50), 0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,24 @@
|
||||
package com.hbm.entity.mob.siege;
|
||||
|
||||
import com.hbm.entity.projectile.EntitySiegeLaser;
|
||||
import com.hbm.handler.SiegeOrchestrator;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import api.hbm.entity.IRadiationImmune;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
import net.minecraft.entity.IRangedAttackMob;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.entity.monster.EntityMob;
|
||||
import net.minecraft.entity.monster.EntitySkeleton;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EntityDamageSource;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob, IRadiationImmune {
|
||||
@ -14,7 +28,141 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
|
||||
public boolean attackEntityFrom(DamageSource source, float damage) {
|
||||
|
||||
if(this.isEntityInvulnerable())
|
||||
return false;
|
||||
|
||||
if(SiegeOrchestrator.isSiegeMob(source.getEntity()))
|
||||
return false;
|
||||
|
||||
SiegeTier tier = this.getTier();
|
||||
|
||||
if(tier.fireProof && source.isFireDamage()) {
|
||||
this.extinguish();
|
||||
return false;
|
||||
}
|
||||
|
||||
if(tier.noFall && source == DamageSource.fall)
|
||||
return false;
|
||||
|
||||
//noFF can't be harmed by other mobs
|
||||
if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer))
|
||||
return false;
|
||||
|
||||
damage -= tier.dt;
|
||||
|
||||
if(damage < 0) {
|
||||
worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F);
|
||||
return false;
|
||||
}
|
||||
|
||||
damage *= (1F - tier.dr);
|
||||
|
||||
return super.attackEntityFrom(source, damage);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void entityInit() {
|
||||
super.entityInit();
|
||||
this.getDataWatcher().addObject(12, (int) 0);
|
||||
this.getDataWatcher().addObject(13, (byte) 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyEntityAttributes() {
|
||||
super.applyEntityAttributes();
|
||||
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D);
|
||||
}
|
||||
|
||||
public void setTier(SiegeTier tier) {
|
||||
this.getDataWatcher().updateObject(12, tier.id);
|
||||
|
||||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1));
|
||||
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Tier Damage Mod", tier.damageMod, 1));
|
||||
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health);
|
||||
this.setHealth(this.getMaxHealth());
|
||||
}
|
||||
|
||||
public SiegeTier getTier() {
|
||||
SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)];
|
||||
return tier != null ? tier : SiegeTier.CLAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addRandomArmor() {
|
||||
super.addRandomArmor();
|
||||
this.setCurrentItemOrArmor(0, new ItemStack(ModItems.detonator_laser));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeEntityToNBT(NBTTagCompound nbt) {
|
||||
super.writeEntityToNBT(nbt);
|
||||
nbt.setInteger("siegeTier", this.getTier().id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
super.readEntityFromNBT(nbt);
|
||||
this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
|
||||
this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]);
|
||||
this.addRandomArmor();
|
||||
return super.onSpawnWithEgg(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attackEntityWithRangedAttack(EntityLivingBase target, float f) {
|
||||
|
||||
Vec3 vec = Vec3.createVectorHelper(target.posX - posY, target.posY + target.height * 0.5 - (posY + this.getEyeHeight()), target.posZ -posZ).normalize();
|
||||
|
||||
SiegeTier tier = this.getTier();
|
||||
|
||||
EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this);
|
||||
laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, 0.15F);
|
||||
laser.setColor(0x808080);
|
||||
laser.setDamage(tier.damageMod);
|
||||
laser.setExplosive(tier.laserExplosive);
|
||||
laser.setBreakChance(tier.laserBreak);
|
||||
if(tier.laserIncendiary) laser.setIncendiary();
|
||||
worldObj.spawnEntityInWorld(laser);
|
||||
this.playSound("hbm:weapon.ballsLaser", 2.0F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAIEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getLivingSound() {
|
||||
return "hbm:entity.siegeIdle";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getHurtSound() {
|
||||
return "hbm:entity.siegeHurt";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDeathSound() {
|
||||
return "hbm:entity.siegeDeath";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dropFewItems(boolean byPlayer, int fortune) {
|
||||
|
||||
if(byPlayer) {
|
||||
for(ItemStack drop : this.getTier().dropItem) {
|
||||
this.entityDropItem(drop.copy(), 0F);
|
||||
}
|
||||
|
||||
this.entityDropItem(new ItemStack(ModItems.source, 3), 0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.mob.siege;
|
||||
import com.hbm.entity.mob.EntityUFOBase;
|
||||
import com.hbm.entity.projectile.EntitySiegeLaser;
|
||||
import com.hbm.handler.SiegeOrchestrator;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import api.hbm.entity.IRadiationImmune;
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
@ -144,6 +145,8 @@ public class EntitySiegeUFO extends EntityUFOBase implements IRadiationImmune {
|
||||
for(ItemStack drop : this.getTier().dropItem) {
|
||||
this.entityDropItem(drop.copy(), 0F);
|
||||
}
|
||||
|
||||
this.entityDropItem(new ItemStack(ModItems.source, 5), 0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.entity.mob.siege;
|
||||
|
||||
import com.hbm.handler.SiegeOrchestrator;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import api.hbm.entity.IRadiationImmune;
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
@ -129,6 +130,8 @@ public class EntitySiegeZombie extends EntityMob implements IRadiationImmune {
|
||||
for(ItemStack drop : this.getTier().dropItem) {
|
||||
this.entityDropItem(drop.copy(), 0F);
|
||||
}
|
||||
|
||||
this.entityDropItem(new ItemStack(ModItems.source, 1), 0F);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -349,6 +349,21 @@ public class HazardRegistry {
|
||||
registerRBMKRod(rbmk_fuel_hep239, pu239 * rod_rbmk, pu239 * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_hep241, pu241 * rod_rbmk, pu241 * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_flashlead, pb209 * 1.25F * rod_rbmk, pb209 * nugget * 0.05F * rod_rbmk);
|
||||
registerRBMKRod(rbmk_fuel_men, npf * rod_rbmk, npf * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_hen, np237 * rod_rbmk, np237 * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_mox, mox * rod_rbmk, mox * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_les, saf * rod_rbmk, saf * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_mes, saf * rod_rbmk, saf * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_hes, saf * rod_rbmk, saf * rod_rbmk * 100);
|
||||
registerRBMKRod(rbmk_fuel_po210be, pobe * rod_rbmk, pobe * rod_rbmk * 0.1F);
|
||||
registerRBMKRod(rbmk_fuel_ra226be, rabe * rod_rbmk, rabe * rod_rbmk * 0.1F);
|
||||
registerRBMKRod(rbmk_fuel_pu238be, pube * rod_rbmk, pube * rod_rbmk * 0.1F);
|
||||
registerRBMKRod(rbmk_fuel_balefire_gold, au198 * rod_rbmk, bf * rod_rbmk * 0.5F);
|
||||
registerRBMKRod(rbmk_fuel_balefire, bf * rod_rbmk, bf * rod_rbmk * 100F);
|
||||
registerRBMKRod(rbmk_fuel_zfb_bismuth, pu241 * rod_rbmk * 0.1F, pu241 * rod_rbmk * 10F);
|
||||
registerRBMKRod(rbmk_fuel_zfb_pu241, pu239 * rod_rbmk * 0.1F, pu239 * rod_rbmk * 10F);
|
||||
registerRBMKRod(rbmk_fuel_zfb_am_mix, pu241 * rod_rbmk * 0.1F, pu241 * rod_rbmk * 10F);
|
||||
registerRBMK(rbmk_fuel_drx, bf * rod_rbmk, bf * rod_rbmk * 100F, true, 0, 1F/3F);
|
||||
|
||||
registerRBMKPellet(rbmk_pellet_ueu, u * billet, u * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_meu, uf * billet, uf * billet * 100);
|
||||
@ -359,6 +374,21 @@ public class HazardRegistry {
|
||||
registerRBMKPellet(rbmk_pellet_mep, purg * billet, purg * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_hep239, pu239 * billet, pu239 * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_hep241, pu241 * billet, pu241 * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_men, npf * billet, npf * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_men, np237 * billet, np237 * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_mox, mox * billet, mox * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_les, saf * billet, saf * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_mes, saf * billet, saf * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_hes, saf * billet, saf * billet * 100);
|
||||
registerRBMKPellet(rbmk_pellet_po210be, pobe * billet, pobe * billet * 0.1F);
|
||||
registerRBMKPellet(rbmk_pellet_ra226be, rabe * billet, rabe * billet * 0.1F);
|
||||
registerRBMKPellet(rbmk_pellet_pu238be, pube * billet, pube * billet * 0.1F);
|
||||
registerRBMKPellet(rbmk_pellet_balefire_gold, au198 * billet, bf * billet * 0.5F);
|
||||
registerRBMKPellet(rbmk_pellet_balefire, bf * billet, bf * billet * 100F);
|
||||
registerRBMKPellet(rbmk_pellet_zfb_bismuth, pu241 * billet * 0.1F, pu241 * billet * 10F);
|
||||
registerRBMKPellet(rbmk_pellet_zfb_pu241, pu239 * billet * 0.1F, pu239 * billet * 10F);
|
||||
registerRBMKPellet(rbmk_pellet_zfb_am_mix, pu241 * billet * 0.1F, pu241 * billet * 10F);
|
||||
registerRBMKPellet(rbmk_pellet_drx, bf * billet, bf * billet * 100F, 0F, 1F/24F);
|
||||
registerRBMKPellet(rbmk_pellet_flashlead, pb209 * 1.25F * billet, pb209 * nugget * 0.05F);
|
||||
|
||||
HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder));
|
||||
@ -438,24 +468,26 @@ public class HazardRegistry {
|
||||
private static HazardData makeData(HazardTypeBase hazard, float level) { return new HazardData().addEntry(hazard, level); }
|
||||
private static HazardData makeData(HazardTypeBase hazard, float level, boolean override) { return new HazardData().addEntry(hazard, level, override); }
|
||||
|
||||
private static void registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, 0F); }
|
||||
private static void registerRBMKPellet(Item pellet, float base, float dep, float blinding) {
|
||||
private static void registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, 0F, 0F); }
|
||||
private static void registerRBMKPellet(Item pellet, float base, float dep, float blinding, float digamma) {
|
||||
|
||||
HazardData data = new HazardData();
|
||||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep)));
|
||||
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
|
||||
if(digamma > 0) data.addEntry(new HazardEntry(DIGAMMA, digamma));
|
||||
HazardSystem.register(pellet, data);
|
||||
}
|
||||
|
||||
private static void registerRBMKRod(Item rod, float base, float dep) { registerRBMK(rod, base, dep, true, 0F); }
|
||||
private static void registerRBMKRod(Item rod, float base, float dep, float blinding) { registerRBMK(rod, base, dep, true, blinding); }
|
||||
private static void registerRBMKRod(Item rod, float base, float dep) { registerRBMK(rod, base, dep, true, 0F, 0F); }
|
||||
private static void registerRBMKRod(Item rod, float base, float dep, float blinding) { registerRBMK(rod, base, dep, true, blinding, 0F); }
|
||||
|
||||
private static void registerRBMK(Item rod, float base, float dep, boolean hot, float blinding) {
|
||||
private static void registerRBMK(Item rod, float base, float dep, boolean hot, float blinding, float digamma) {
|
||||
|
||||
HazardData data = new HazardData();
|
||||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep)));
|
||||
if(hot) data.addEntry(new HazardEntry(HOT, 0).addMod(new HazardModifierRBMKHot()));
|
||||
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
|
||||
if(digamma > 0) data.addEntry(new HazardEntry(DIGAMMA, digamma));
|
||||
HazardSystem.register(rod, data);
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import java.util.List;
|
||||
//i love you
|
||||
import static com.hbm.items.ModItems.*;
|
||||
import static com.hbm.blocks.ModBlocks.*;
|
||||
import static com.hbm.inventory.OreDictManager.DictFrame.*;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
@ -13,6 +14,8 @@ import com.hbm.hazard.HazardData;
|
||||
import com.hbm.hazard.HazardEntry;
|
||||
import com.hbm.hazard.HazardRegistry;
|
||||
import com.hbm.hazard.HazardSystem;
|
||||
import com.hbm.items.ItemEnums.EnumCokeType;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
@ -27,7 +30,7 @@ public class OreDictManager {
|
||||
/*
|
||||
* Standard keys
|
||||
*/
|
||||
public static final String KEY_STICK = "stickWood";
|
||||
public static final String KEY_STICK = "stickWood"; //if there's no "any" or "<shape>Any" prefix required, simply use a String key instead of a DictFrame
|
||||
public static final String KEY_ANYGLASS = "blockGlass";
|
||||
public static final String KEY_CLEARGLASS = "blockGlassColorless";
|
||||
public static final String KEY_ANYPANE = "paneGlass";
|
||||
@ -42,25 +45,29 @@ public class OreDictManager {
|
||||
public static final String KEY_SAPLING = "treeSapling";
|
||||
|
||||
public static final String KEY_BLACK = "dyeBlack";
|
||||
public static final String KEY_RED = "dyeRed";
|
||||
public static final String KEY_GREEN = "dyeGreen";
|
||||
public static final String KEY_BROWN = "dyeBrown";
|
||||
public static final String KEY_BLUE = "dyeBlue";
|
||||
public static final String KEY_PURPLE = "dyePurple";
|
||||
public static final String KEY_CYAN = "dyeCyan";
|
||||
public static final String KEY_LIGHTGRAY = "dyeLightGray";
|
||||
public static final String KEY_GRAY = "dyeGray";
|
||||
public static final String KEY_PINK = "dyePink";
|
||||
public static final String KEY_LIME = "dyeLime";
|
||||
public static final String KEY_YELLOW = "dyeYellow";
|
||||
public static final String KEY_LIGHTBLUE = "dyeLightBlue";
|
||||
public static final String KEY_MAGENTA = "dyeMagenta";
|
||||
public static final String KEY_ORANGE = "dyeOrange";
|
||||
public static final String KEY_WHITE = "dyeWhite";
|
||||
public static final String KEY_RED = "dyeRed";
|
||||
public static final String KEY_GREEN = "dyeGreen";
|
||||
public static final String KEY_BROWN = "dyeBrown";
|
||||
public static final String KEY_BLUE = "dyeBlue";
|
||||
public static final String KEY_PURPLE = "dyePurple";
|
||||
public static final String KEY_CYAN = "dyeCyan";
|
||||
public static final String KEY_LIGHTGRAY = "dyeLightGray";
|
||||
public static final String KEY_GRAY = "dyeGray";
|
||||
public static final String KEY_PINK = "dyePink";
|
||||
public static final String KEY_LIME = "dyeLime";
|
||||
public static final String KEY_YELLOW = "dyeYellow";
|
||||
public static final String KEY_LIGHTBLUE = "dyeLightBlue";
|
||||
public static final String KEY_MAGENTA = "dyeMagenta";
|
||||
public static final String KEY_ORANGE = "dyeOrange";
|
||||
public static final String KEY_WHITE = "dyeWhite";
|
||||
|
||||
public static final String KEY_OIL_TAR = "oiltar";
|
||||
public static final String KEY_CRACK_TAR = "cracktar";
|
||||
|
||||
/*
|
||||
* PREFIXES
|
||||
*/
|
||||
public static final String ANY = "any";
|
||||
public static final String NUGGET = "nugget";
|
||||
public static final String TINY = "tiny";
|
||||
public static final String INGOT = "ingot";
|
||||
@ -158,6 +165,9 @@ public class OreDictManager {
|
||||
public static final DictFrame KNO = new DictFrame("Saltpeter");
|
||||
public static final DictFrame F = new DictFrame("Fluorite");
|
||||
public static final DictFrame LIGNITE = new DictFrame("Lignite");
|
||||
public static final DictFrame COALCOKE = new DictFrame("CoalCoke");
|
||||
public static final DictFrame PETCOKE = new DictFrame("PetCoke");
|
||||
public static final DictFrame LIGCOKE = new DictFrame("LigniteCoke");
|
||||
public static final DictFrame CINNABAR = new DictFrame("Cinnabar");
|
||||
public static final DictFrame BORAX = new DictFrame("Borax");
|
||||
public static final DictFrame VOLCANIC = new DictFrame("Volcanic");
|
||||
@ -207,10 +217,12 @@ public class OreDictManager {
|
||||
/*
|
||||
* COLLECTIONS
|
||||
*/
|
||||
public static final DictFrame ANY_PLASTIC = new DictFrame("AnyPlastic");
|
||||
public static final DictFrame ANY_PLASTIC = new DictFrame("AnyPlastic"); //using the Any prefix means that it's jsut the secondary prefix, and that shape prefixes are applicable
|
||||
public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant");
|
||||
public static final DictFrame ANY_SMOKELESS = new DictFrame("AnySmokeless");
|
||||
public static final String KEY_ANYCONCRETE = "anyConcrete";
|
||||
public static final DictFrame ANY_COKE = new DictFrame("AnyCoke", "Coke");
|
||||
public static final DictFrame ANY_CONCRETE = new DictFrame("Concrete"); //no any prefix means that any has to be appended with the any() or anys() getters, registering works with the any (i.e. no shape) setter
|
||||
public static final DictFrame ANY_TAR = new DictFrame("Tar");
|
||||
|
||||
public static void registerOres() {
|
||||
|
||||
@ -228,12 +240,12 @@ public class OreDictManager {
|
||||
/*
|
||||
* RADIOACTIVE
|
||||
*/
|
||||
U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium);
|
||||
U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched);
|
||||
U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233);
|
||||
U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235);
|
||||
U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238);
|
||||
TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium);
|
||||
PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium);
|
||||
PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium);
|
||||
PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix);
|
||||
PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238);
|
||||
PU239 .rad(HazardRegistry.pu239) .nugget(nugget_pu239) .billet(billet_pu239) .ingot(ingot_pu239) .block(block_pu239);
|
||||
@ -250,7 +262,7 @@ public class OreDictManager {
|
||||
CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60);
|
||||
AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198);
|
||||
PB209 .rad(HazardRegistry.pb209) .blinding(3F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209);
|
||||
SA326 .rad(HazardRegistry.sa326) .blinding(3F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium);
|
||||
SA326 .rad(HazardRegistry.sa326) .blinding(3F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium);
|
||||
SA327 .rad(HazardRegistry.sa327) .blinding(3F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium);
|
||||
SBD .rad(HazardRegistry.sb) .blinding(1F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate);
|
||||
SRN .rad(HazardRegistry.sr) .blinding(1F) .ingot(ingot_schraranium) .block(block_schraranium);
|
||||
@ -263,7 +275,7 @@ public class OreDictManager {
|
||||
CU .ingot(ingot_copper) .dust(powder_copper) .plate(plate_copper) .block(block_copper) .ore(ore_copper, ore_gneiss_copper, ore_meteor_copper);
|
||||
MINGRADE .ingot(ingot_red_copper) .dust(powder_red_copper) .block(block_red_copper);
|
||||
ALLOY .ingot(ingot_advanced_alloy) .dust(powder_advanced_alloy) .plate(plate_advanced_alloy) .block(block_advanced_alloy);
|
||||
W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten);
|
||||
W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten) .oreNether(ore_nether_tungsten);
|
||||
AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium);
|
||||
STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel);
|
||||
TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy);
|
||||
@ -293,13 +305,16 @@ public class OreDictManager {
|
||||
/*
|
||||
* DUST AND GEM ORES
|
||||
*/
|
||||
S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur);
|
||||
KNO .dust(niter) .block(block_niter) .ore(ore_niter);
|
||||
F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite);
|
||||
LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite);
|
||||
CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar);
|
||||
BORAX .dust(powder_borax) .ore(ore_depth_borax);
|
||||
VOLCANIC .gem(gem_volcanic) .ore(basalt_gem);
|
||||
S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur) .oreNether(ore_nether_sulfur);
|
||||
KNO .dust(niter) .block(block_niter) .ore(ore_niter);
|
||||
F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite);
|
||||
LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite);
|
||||
COALCOKE .gem(fromOne(coke, EnumCokeType.COAL));
|
||||
PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM));
|
||||
LIGCOKE .gem(fromOne(coke, EnumCokeType.LIGNITE));
|
||||
CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar);
|
||||
BORAX .dust(powder_borax) .ore(ore_depth_borax);
|
||||
VOLCANIC .gem(gem_volcanic) .ore(basalt_gem);
|
||||
|
||||
/*
|
||||
* HAZARDS, MISC
|
||||
@ -327,7 +342,7 @@ public class OreDictManager {
|
||||
*/
|
||||
LA .nugget(fragment_lanthanium) .ingot(ingot_lanthanium) .dustSmall(powder_lanthanium_tiny) .dust(powder_lanthanium) .block(block_lanthanium);
|
||||
ZR .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium);
|
||||
ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium);
|
||||
ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium) .oreNether(ore_depth_nether_neodymium);
|
||||
CE .nugget(fragment_cerium) .dustSmall(powder_cerium_tiny) .dust(powder_cerium);
|
||||
|
||||
/*
|
||||
@ -352,13 +367,15 @@ public class OreDictManager {
|
||||
/*
|
||||
* COLLECTIONS
|
||||
*/
|
||||
ANY_PLASTIC .ingot(ModItems.ingot_polymer, ModItems.ingot_bakelite).dust(ModItems.powder_polymer);
|
||||
ANY_GUNPOWDER .dust(Items.gunpowder, ModItems.ballistite, ModItems.cordite);
|
||||
ANY_SMOKELESS .dust(ModItems.ballistite, ModItems.cordite);
|
||||
ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer);
|
||||
ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite);
|
||||
ANY_SMOKELESS .dust(ballistite, cordite);
|
||||
ANY_COKE .gem(fromAll(coke, EnumCokeType.class));
|
||||
ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth);
|
||||
ANY_TAR .any(fromAll(oil_tar, EnumTarType.class));
|
||||
|
||||
OreDictionary.registerOre(KEY_ANYCONCRETE, ModBlocks.concrete);
|
||||
OreDictionary.registerOre(KEY_ANYCONCRETE, ModBlocks.concrete_smooth);
|
||||
OreDictionary.registerOre(KEY_ANYCONCRETE, ModBlocks.concrete_asbestos);
|
||||
OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE));
|
||||
OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK));
|
||||
|
||||
OreDictionary.registerOre(getReflector(), neutron_reflector);
|
||||
OreDictionary.registerOre("oreRareEarth", ore_rare);
|
||||
@ -387,7 +404,8 @@ public class OreDictManager {
|
||||
//OreDictionary.registerOre("dye", fluorite);
|
||||
OreDictionary.registerOre("dyeBlue", powder_lapis);
|
||||
//OreDictionary.registerOre("dye", powder_lapis);
|
||||
OreDictionary.registerOre("dyeBlack", oil_tar);
|
||||
OreDictionary.registerOre("dyeBlack", fromOne(oil_tar, EnumTarType.CRUDE));
|
||||
OreDictionary.registerOre("dyeBlack", fromOne(oil_tar, EnumTarType.CRACK));
|
||||
//OreDictionary.registerOre("dye", oil_tar);
|
||||
|
||||
OreDictionary.registerOre("blockGlass", glass_boron);
|
||||
@ -418,20 +436,22 @@ public class OreDictManager {
|
||||
/*
|
||||
* Quick access methods to grab ore names for recipes.
|
||||
*/
|
||||
public String nugget() { return NUGGET + mats[0]; }
|
||||
public String tiny() { return TINY + mats[0]; }
|
||||
public String ingot() { return INGOT + mats[0]; }
|
||||
public String dustTiny() { return DUSTTINY + mats[0]; }
|
||||
public String dust() { return DUST + mats[0]; }
|
||||
public String gem() { return GEM + mats[0]; }
|
||||
public String crystal() { return CRYSTAL + mats[0]; }
|
||||
public String plate() { return PLATE + mats[0]; }
|
||||
public String billet() { return BILLET + mats[0]; }
|
||||
public String block() { return BLOCK + mats[0]; }
|
||||
public String ore() { return ORE + mats[0]; }
|
||||
public String any() { return ANY + mats[0]; }
|
||||
public String nugget() { return NUGGET + mats[0]; }
|
||||
public String tiny() { return TINY + mats[0]; }
|
||||
public String ingot() { return INGOT + mats[0]; }
|
||||
public String dustTiny() { return DUSTTINY + mats[0]; }
|
||||
public String dust() { return DUST + mats[0]; }
|
||||
public String gem() { return GEM + mats[0]; }
|
||||
public String crystal() { return CRYSTAL + mats[0]; }
|
||||
public String plate() { return PLATE + mats[0]; }
|
||||
public String billet() { return BILLET + mats[0]; }
|
||||
public String block() { return BLOCK + mats[0]; }
|
||||
public String ore() { return ORE + mats[0]; }
|
||||
public String[] anys() { return appendToAll(ANY); }
|
||||
public String[] nuggets() { return appendToAll(NUGGET); }
|
||||
public String[] tinys() { return appendToAll(TINY); }
|
||||
public String[] allNuggets() { return appendToAll(NUGGET, TINY); }
|
||||
public String[] allNuggets() { return appendToAll(NUGGET, TINY); }
|
||||
public String[] ingots() { return appendToAll(INGOT); }
|
||||
public String[] dustTinys() { return appendToAll(DUSTTINY); }
|
||||
public String[] dusts() { return appendToAll(DUST); }
|
||||
@ -465,56 +485,89 @@ public class OreDictManager {
|
||||
return this;
|
||||
}
|
||||
|
||||
public DictFrame nugget(Item... nugget) {
|
||||
hazMult = HazardRegistry.nugget;
|
||||
return makeItem(NUGGET, nugget).makeItem(TINY, nugget);
|
||||
/** Returns an ItemStack composed of the supplied item with the meta being the enum's ordinal. Purely syntactic candy */
|
||||
public static ItemStack fromOne(Item item, Enum en) {
|
||||
return new ItemStack(item, 1, en.ordinal());
|
||||
}
|
||||
public DictFrame ingot(Item... ingot) {
|
||||
hazMult = HazardRegistry.ingot;
|
||||
return makeItem(INGOT, ingot);
|
||||
}
|
||||
public DictFrame dustSmall(Item... dustSmall) {
|
||||
hazMult = HazardRegistry.powder_tiny;
|
||||
return makeItem(DUSTTINY, dustSmall);
|
||||
}
|
||||
public DictFrame dust(Item... dust) {
|
||||
hazMult = HazardRegistry.powder;
|
||||
return makeItem(DUST, dust);
|
||||
}
|
||||
public DictFrame gem(Item... gem) {
|
||||
hazMult = HazardRegistry.gem;
|
||||
return makeItem(GEM, gem);
|
||||
}
|
||||
public DictFrame crystal(Item... crystal) {
|
||||
hazMult = HazardRegistry.gem;
|
||||
return makeItem(CRYSTAL, crystal);
|
||||
}
|
||||
public DictFrame plate(Item... plate) {
|
||||
hazMult = HazardRegistry.plate;
|
||||
return makeItem(PLATE, plate);
|
||||
}
|
||||
public DictFrame billet(Item... billet) {
|
||||
hazMult = HazardRegistry.billet;
|
||||
return makeItem(BILLET, billet);
|
||||
/** Same as fromOne but with an array of ItemStacks. The array type is Object[] so that the ODM methods work with it. Generates ItemStacks for the entire enum class. */
|
||||
public static Object[] fromAll(Item item, Class<? extends Enum> en) {
|
||||
Enum[] vals = en.getEnumConstants();
|
||||
Object[] stacks = new Object[vals.length];
|
||||
|
||||
for(int i = 0; i < vals.length; i++) {
|
||||
stacks[i] = new ItemStack(item, 1, vals[i].ordinal());
|
||||
}
|
||||
return stacks;
|
||||
}
|
||||
|
||||
public DictFrame block(Block... block) {
|
||||
public DictFrame any(Object... thing) {
|
||||
return makeObject(ANY, thing);
|
||||
}
|
||||
public DictFrame nugget(Object... nugget) {
|
||||
hazMult = HazardRegistry.nugget;
|
||||
return makeObject(NUGGET, nugget).makeObject(TINY, nugget);
|
||||
}
|
||||
public DictFrame ingot(Object... ingot) {
|
||||
hazMult = HazardRegistry.ingot;
|
||||
return makeObject(INGOT, ingot);
|
||||
}
|
||||
public DictFrame dustSmall(Object... dustSmall) {
|
||||
hazMult = HazardRegistry.powder_tiny;
|
||||
return makeObject(DUSTTINY, dustSmall);
|
||||
}
|
||||
public DictFrame dust(Object... dust) {
|
||||
hazMult = HazardRegistry.powder;
|
||||
return makeObject(DUST, dust);
|
||||
}
|
||||
public DictFrame gem(Object... gem) {
|
||||
hazMult = HazardRegistry.gem;
|
||||
return makeObject(GEM, gem);
|
||||
}
|
||||
public DictFrame crystal(Object... crystal) {
|
||||
hazMult = HazardRegistry.gem;
|
||||
return makeObject(CRYSTAL, crystal);
|
||||
}
|
||||
public DictFrame plate(Object... plate) {
|
||||
hazMult = HazardRegistry.plate;
|
||||
return makeObject(PLATE, plate);
|
||||
}
|
||||
public DictFrame billet(Object... billet) {
|
||||
hazMult = HazardRegistry.billet;
|
||||
return makeObject(BILLET, billet);
|
||||
}
|
||||
|
||||
public DictFrame block(Object... block) {
|
||||
hazMult = HazardRegistry.block;
|
||||
return makeBlocks(BLOCK, block);
|
||||
return makeObject(BLOCK, block);
|
||||
}
|
||||
public DictFrame ore(Block... ore) {
|
||||
public DictFrame ore(Object... ore) {
|
||||
hazMult = HazardRegistry.ore;
|
||||
return makeBlocks(ORE, ore);
|
||||
return makeObject(ORE, ore);
|
||||
}
|
||||
public DictFrame oreNether(Block... oreNether) {
|
||||
public DictFrame oreNether(Object... oreNether) {
|
||||
hazMult = HazardRegistry.ore;
|
||||
return makeBlocks(ORENETHER, oreNether);
|
||||
return makeObject(ORENETHER, oreNether);
|
||||
}
|
||||
|
||||
public DictFrame makeObject(String tag, Object... objects) {
|
||||
|
||||
for(Object o : objects) {
|
||||
if(o instanceof Item) registerStack(tag, new ItemStack((Item) o));
|
||||
if(o instanceof Block) registerStack(tag, new ItemStack((Block) o));
|
||||
if(o instanceof ItemStack) registerStack(tag, (ItemStack) o);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public DictFrame makeItem(String tag, Item... items) {
|
||||
for(Item i : items) registerStack(tag, new ItemStack(i));
|
||||
return this;
|
||||
}
|
||||
public DictFrame makeStack(String tag, ItemStack... stacks) {
|
||||
for(ItemStack s : stacks) registerStack(tag, s);
|
||||
return this;
|
||||
}
|
||||
public DictFrame makeBlocks(String tag, Block... blocks) {
|
||||
for(Block b : blocks) registerStack(tag, new ItemStack(b));
|
||||
return this;
|
||||
|
||||
@ -18,6 +18,7 @@ import com.hbm.items.machine.ItemStamp.StampType;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.ItemFolderPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
@ -114,6 +115,12 @@ public class GUIScreenTemplateFolder extends GuiScreen {
|
||||
|
||||
if(stack.getDisplayName().toLowerCase().contains(sub)) {
|
||||
stacks.add(stack);
|
||||
} else if(stack.getItem() == ModItems.fluid_identifier) {
|
||||
FluidType fluid = Fluids.fromID(stack.getItemDamage());
|
||||
|
||||
if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase().contains(sub)) {
|
||||
stacks.add(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@ import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemAssemblyTemplate;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -278,8 +279,8 @@ public class AssemblerRecipes {
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_canola, 1), },160);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.oil_tar, 4), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(TCALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModItems.oil_tar, 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(TCALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(TCALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400);
|
||||
|
||||
@ -11,6 +11,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -134,23 +135,23 @@ public class ChemplantRecipes {
|
||||
|
||||
public static void registerCoalCracking() {
|
||||
recipes.add(new ChemRecipe("CC_OIL", 150)
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new ComparableStack(ModItems.oil_tar, 4))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
|
||||
.inputFluids(new FluidStack(1400, Fluids.STEAM))
|
||||
.outputFluids(new FluidStack(2000, Fluids.OIL)));
|
||||
recipes.add(new ChemRecipe("CC_I", 200)
|
||||
.inputItems(new OreDictStack(COAL.dust(), 6), new ComparableStack(ModItems.oil_tar, 4))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4))
|
||||
.inputFluids(new FluidStack(1800, Fluids.WATER))
|
||||
.outputFluids(new FluidStack(1600, Fluids.SMEAR)));
|
||||
recipes.add(new ChemRecipe("CC_HEATING", 250)
|
||||
.inputItems(new OreDictStack(COAL.dust(), 6), new ComparableStack(ModItems.oil_tar, 4))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4))
|
||||
.inputFluids(new FluidStack(2000, Fluids.STEAM))
|
||||
.outputFluids(new FluidStack(1800, Fluids.HEATINGOIL)));
|
||||
recipes.add(new ChemRecipe("CC_HEAVY", 200)
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new ComparableStack(ModItems.oil_tar, 4))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
|
||||
.inputFluids(new FluidStack(1400, Fluids.WATER))
|
||||
.outputFluids(new FluidStack(1800, Fluids.HEAVYOIL)));
|
||||
recipes.add(new ChemRecipe("CC_NAPHTHA", 300)
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new ComparableStack(ModItems.oil_tar, 4))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
|
||||
.inputFluids(new FluidStack(2400, Fluids.STEAM))
|
||||
.outputFluids(new FluidStack(2000, Fluids.NAPHTHA)));
|
||||
}
|
||||
@ -158,10 +159,10 @@ public class ChemplantRecipes {
|
||||
public static void registerSolidFuel() {
|
||||
recipes.add(new ChemRecipe("SF_OIL", 20)
|
||||
.inputFluids(new FluidStack(350, Fluids.OIL))
|
||||
.outputItems(new ItemStack(ModItems.oil_tar, 1), new ItemStack(ModItems.oil_tar, 1)));
|
||||
.outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)));
|
||||
recipes.add(new ChemRecipe("SF_HEAVYOIL", 20)
|
||||
.inputFluids(new FluidStack(250, Fluids.HEAVYOIL))
|
||||
.outputItems(new ItemStack(ModItems.oil_tar, 1), new ItemStack(ModItems.oil_tar, 1)));
|
||||
.outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)));
|
||||
recipes.add(new ChemRecipe("SF_SMEAR", 20)
|
||||
.inputFluids(new FluidStack(200, Fluids.SMEAR))
|
||||
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
|
||||
@ -214,7 +215,7 @@ public class ChemplantRecipes {
|
||||
.inputFluids(new FluidStack(2000, Fluids.PETROLEUM))
|
||||
.outputFluids(new FluidStack(1000, Fluids.LPG)));
|
||||
recipes.add(new ChemRecipe("OIL_SAND", 200)
|
||||
.inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new ComparableStack(ModItems.oil_tar, 1))
|
||||
.inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1))
|
||||
.outputItems(new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4))
|
||||
.outputFluids(new FluidStack(1000, Fluids.BITUMEN)));
|
||||
recipes.add(new ChemRecipe("ASPHALT", 100)
|
||||
|
||||
@ -11,8 +11,10 @@ import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.inventory.FluidContainer;
|
||||
import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.inventory.FluidStack;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemChemistryTemplate;
|
||||
import com.hbm.items.machine.ItemFluidIcon;
|
||||
@ -1162,7 +1164,7 @@ public class MachineRecipes {
|
||||
Map<Object, Object> recipes = new HashMap<Object, Object>();
|
||||
|
||||
for(int i = 0; i < Fluids.getAll().length; i++) {
|
||||
Object[] outs = getBoilerOutput(FluidType.getEnum(i));
|
||||
Object[] outs = getBoilerOutput(Fluids.fromID(i));
|
||||
|
||||
if(outs != null) {
|
||||
|
||||
@ -1664,43 +1666,43 @@ public class MachineRecipes {
|
||||
case CIRCUIT_5:
|
||||
output[0] = new ItemStack(ModItems.circuit_schrabidium, 1);
|
||||
break;
|
||||
case SF_OIL:
|
||||
output[0] = new ItemStack(ModItems.oil_tar, 1);
|
||||
output[1] = new ItemStack(ModItems.oil_tar, 1);
|
||||
case SF_OIL:
|
||||
output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
|
||||
output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
|
||||
break;
|
||||
case SF_HEAVYOIL:
|
||||
output[0] = new ItemStack(ModItems.oil_tar, 1);
|
||||
output[1] = new ItemStack(ModItems.oil_tar, 1);
|
||||
case SF_HEAVYOIL:
|
||||
output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
|
||||
output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
|
||||
break;
|
||||
case SF_SMEAR:
|
||||
case SF_SMEAR:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_HEATINGOIL:
|
||||
case SF_HEATINGOIL:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_RECLAIMED:
|
||||
case SF_RECLAIMED:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_PETROIL:
|
||||
case SF_PETROIL:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_LUBRICANT:
|
||||
case SF_LUBRICANT:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_NAPHTHA:
|
||||
case SF_NAPHTHA:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_DIESEL:
|
||||
case SF_DIESEL:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_LIGHTOIL:
|
||||
case SF_LIGHTOIL:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
@ -1720,50 +1722,50 @@ public class MachineRecipes {
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case SF_BIOFUEL:
|
||||
case SF_BIOFUEL:
|
||||
output[0] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
output[1] = new ItemStack(ModItems.solid_fuel, 1);
|
||||
break;
|
||||
case POLYMER:
|
||||
case POLYMER:
|
||||
output[0] = new ItemStack(ModItems.ingot_polymer, 1);
|
||||
break;
|
||||
case YELLOWCAKE:
|
||||
break;
|
||||
case YELLOWCAKE:
|
||||
output[0] = new ItemStack(ModItems.powder_yellowcake, 1);
|
||||
break;
|
||||
case UF6:
|
||||
break;
|
||||
case UF6:
|
||||
output[0] = new ItemStack(ModItems.sulfur, 2);
|
||||
break;
|
||||
case DYN_SCHRAB:
|
||||
case DYN_SCHRAB:
|
||||
output[0] = new ItemStack(ModItems.ingot_schrabidium, 1);
|
||||
output[1] = new ItemStack(ModItems.powder_desh, 12);
|
||||
output[2] = new ItemStack(ModItems.powder_desh_mix, 12);
|
||||
break;
|
||||
case DYN_EUPH:
|
||||
break;
|
||||
case DYN_EUPH:
|
||||
output[0] = new ItemStack(ModItems.nugget_euphemium, 12);
|
||||
output[1] = new ItemStack(ModItems.powder_schrabidium, 4);
|
||||
output[2] = new ItemStack(ModItems.powder_power, 4);
|
||||
break;
|
||||
case DYN_DNT:
|
||||
break;
|
||||
case DYN_DNT:
|
||||
output[0] = new ItemStack(ModItems.ingot_dineutronium, 1);
|
||||
output[1] = new ItemStack(ModItems.powder_euphemium, 8);
|
||||
output[2] = new ItemStack(ModItems.powder_nitan_mix, 8);
|
||||
break;
|
||||
case CORDITE:
|
||||
break;
|
||||
case CORDITE:
|
||||
output[0] = new ItemStack(ModItems.cordite, 4);
|
||||
break;
|
||||
case KEVLAR:
|
||||
break;
|
||||
case KEVLAR:
|
||||
output[0] = new ItemStack(ModItems.plate_kevlar, 4);
|
||||
break;
|
||||
case SOLID_FUEL:
|
||||
break;
|
||||
case SOLID_FUEL:
|
||||
output[0] = new ItemStack(ModItems.rocket_fuel, 4);
|
||||
break;
|
||||
case SATURN:
|
||||
break;
|
||||
case SATURN:
|
||||
output[0] = new ItemStack(ModItems.ingot_saturnite, 2);
|
||||
break;
|
||||
case BALEFIRE:
|
||||
break;
|
||||
case BALEFIRE:
|
||||
output[0] = new ItemStack(ModItems.powder_balefire, 1);
|
||||
break;
|
||||
case SCHRABIDATE:
|
||||
break;
|
||||
case SCHRABIDATE:
|
||||
output[0] = new ItemStack(ModItems.powder_schrabidate, 1);
|
||||
break;
|
||||
case COLTAN_CLEANING:
|
||||
|
||||
@ -49,7 +49,7 @@ public class PressRecipes {
|
||||
makeRecipe(StampType.FLAT, new ComparableStack(ModItems.pellet_coal), Items.diamond);
|
||||
makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed);
|
||||
makeRecipe(StampType.FLAT, new ComparableStack(ModItems.powder_lignite), ModItems.briquette_lignite);
|
||||
makeRecipe(StampType.FLAT, new ComparableStack(ModItems.coke), ModItems.ingot_graphite);
|
||||
makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite);
|
||||
makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened);
|
||||
|
||||
makeRecipe(StampType.PLATE, new OreDictStack(IRON.ingot()), ModItems.plate_iron);
|
||||
|
||||
@ -54,6 +54,14 @@ public class RefineryRecipes {
|
||||
ItemFluidIcon.make(Fluids.PETROLEUM, oil_frac_petro * 10),
|
||||
new ItemStack(ModItems.sulfur, 1) });
|
||||
|
||||
/*recipes.put(ItemFluidIcon.make(Fluids.HOTCRACKOIL, 1000),
|
||||
new ItemStack[] {
|
||||
ItemFluidIcon.make(Fluids.NAPHTHA_CRACK, oil_frac_heavy * 10), //fractionates into crack diesel and heating oil
|
||||
ItemFluidIcon.make(Fluids.LIGHTOIL_CRACK, oil_frac_naph * 10), //fractionates into kerosene and petroleum
|
||||
ItemFluidIcon.make(Fluids.AROMATICS, oil_frac_light * 10), //used for making bakelite and TNT
|
||||
ItemFluidIcon.make(Fluids.UNSATURATEDS, oil_frac_petro * 10), //used for all sorts of things, can be processed into petroleum
|
||||
DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM) });*/
|
||||
|
||||
return recipes;
|
||||
}
|
||||
|
||||
@ -67,9 +75,9 @@ public class RefineryRecipes {
|
||||
public static void registerCracking() {
|
||||
cracking.put(Fluids.BITUMEN, new Quartet(Fluids.OIL, Fluids.PETROLEUM, bitumen_crack_oil, bitumen_crack_petro));
|
||||
cracking.put(Fluids.SMEAR, new Quartet(Fluids.NAPHTHA, Fluids.PETROLEUM, smear_crack_napht, smear_crack_petro));
|
||||
cracking.put(Fluids.GAS, new Quartet(Fluids.PETROLEUM, Fluids.NONE, gas_crack_petro, 0));
|
||||
cracking.put(Fluids.GAS, new Quartet(Fluids.PETROLEUM, Fluids.NONE, gas_crack_petro, 0));
|
||||
cracking.put(Fluids.DIESEL, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, diesel_crack_kero, diesel_crack_petro));
|
||||
cracking.put(Fluids.KEROSENE, new Quartet(Fluids.PETROLEUM, Fluids.NONE, kero_crack_petro, 0));
|
||||
cracking.put(Fluids.KEROSENE, new Quartet(Fluids.PETROLEUM, Fluids.NONE, kero_crack_petro, 0));
|
||||
}
|
||||
|
||||
public static Quartet<FluidType, FluidType, Integer, Integer> getFractions(FluidType oil) {
|
||||
|
||||
@ -78,7 +78,14 @@ public class ShredderRecipes {
|
||||
int len = prefix.length();
|
||||
|
||||
if(name.length() > len && name.substring(0, len).equals(prefix)) {
|
||||
ItemStack dust = getDustByName(name.substring(len));
|
||||
|
||||
String matName = name.substring(len);
|
||||
|
||||
//skip over genericized names so we don't accidentally convert item groups
|
||||
if(matName.startsWith("Any"))
|
||||
return;
|
||||
|
||||
ItemStack dust = getDustByName(matName);
|
||||
|
||||
if(dust != null && dust.getItem() != ModItems.scrap) {
|
||||
|
||||
|
||||
@ -213,7 +213,7 @@ public class AnvilRecipes {
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(KEY_ANYCONCRETE, 2),
|
||||
new OreDictStack(ANY_CONCRETE.any(), 2),
|
||||
new ComparableStack(ModBlocks.steel_scaffold, 8),
|
||||
new ComparableStack(ModItems.plate_polymer, 8),
|
||||
new ComparableStack(ModItems.coil_copper, 4)
|
||||
@ -222,7 +222,7 @@ public class AnvilRecipes {
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(KEY_ANYCONCRETE, 6),
|
||||
new OreDictStack(ANY_CONCRETE.any(), 6),
|
||||
new OreDictStack(STEEL.ingot(), 4),
|
||||
new ComparableStack(ModBlocks.steel_scaffold, 2),
|
||||
new ComparableStack(ModItems.plate_polymer, 8),
|
||||
|
||||
21
src/main/java/com/hbm/items/ItemEnums.java
Normal file
@ -0,0 +1,21 @@
|
||||
package com.hbm.items;
|
||||
|
||||
/**
|
||||
* I'm not at all sure if bunching together all these enums in one long class is a good idea
|
||||
* but I don't want to make a new class for every multi item to hold the enum
|
||||
* since that's entirely against the point of ItemEnumMulti to begin with.
|
||||
* @author hbm
|
||||
*/
|
||||
public class ItemEnums {
|
||||
|
||||
public static enum EnumCokeType {
|
||||
COAL,
|
||||
LIGNITE,
|
||||
PETROLEUM
|
||||
}
|
||||
|
||||
public static enum EnumTarType {
|
||||
CRUDE,
|
||||
CRACK
|
||||
}
|
||||
}
|
||||
@ -978,6 +978,7 @@ public class ModItems {
|
||||
public static Item coin_worm;
|
||||
public static Item coin_ufo;
|
||||
public static Item coin_siege;
|
||||
public static Item source;
|
||||
|
||||
public static Item rod_empty;
|
||||
public static Item rod;
|
||||
@ -2688,12 +2689,12 @@ public class ModItems {
|
||||
plate_armor_fau = new Item().setUnlocalizedName("plate_armor_fau").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_fau");
|
||||
plate_armor_dnt = new Item().setUnlocalizedName("plate_armor_dnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_dnt");
|
||||
|
||||
oil_tar = new Item().setUnlocalizedName("oil_tar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":oil_tar");
|
||||
oil_tar = new ItemEnumMulti(ItemEnums.EnumTarType.class, true, true).setUnlocalizedName("oil_tar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":oil_tar");
|
||||
solid_fuel = new Item().setUnlocalizedName("solid_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel");
|
||||
solid_fuel_presto = new Item().setUnlocalizedName("solid_fuel_presto").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto");
|
||||
solid_fuel_presto_triplet = new Item().setUnlocalizedName("solid_fuel_presto_triplet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet");
|
||||
rocket_fuel = new Item().setUnlocalizedName("rocket_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rocket_fuel");
|
||||
coke = new Item().setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke");
|
||||
coke = new ItemEnumMulti(ItemEnums.EnumCokeType.class, true, true).setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke");
|
||||
lignite = new Item().setUnlocalizedName("lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lignite");
|
||||
briquette_lignite = new Item().setUnlocalizedName("briquette_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":briquette_lignite");
|
||||
powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite");
|
||||
@ -3446,6 +3447,7 @@ public class ModItems {
|
||||
coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm");
|
||||
coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo");
|
||||
coin_siege = new ItemSiegeCoin().setUnlocalizedName("coin_siege").setCreativeTab(MainRegistry.consumableTab);
|
||||
source = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("source").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":source");
|
||||
|
||||
recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground");
|
||||
recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock");
|
||||
@ -4853,6 +4855,7 @@ public class ModItems {
|
||||
.addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0))
|
||||
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))
|
||||
.setBlastProtection(0.5F)
|
||||
.setProtectionLevel(500F)
|
||||
//.setGravity(0.02D)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
@ -4894,6 +4897,7 @@ public class ModItems {
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.setProtectionLevel(1000F)
|
||||
.addResistance("fall", 0F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.setFireproof(true).setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet");
|
||||
@ -7490,6 +7494,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(coin_worm, coin_worm.getUnlocalizedName());
|
||||
GameRegistry.registerItem(coin_ufo, coin_ufo.getUnlocalizedName());
|
||||
GameRegistry.registerItem(coin_siege, coin_siege.getUnlocalizedName());
|
||||
GameRegistry.registerItem(source, source.getUnlocalizedName());
|
||||
GameRegistry.registerItem(medal_liquidator, medal_liquidator.getUnlocalizedName());
|
||||
GameRegistry.registerItem(v1, v1.getUnlocalizedName());
|
||||
GameRegistry.registerItem(protection_charm, protection_charm.getUnlocalizedName());
|
||||
|
||||
@ -51,6 +51,7 @@ public class ArmorFSB extends ItemArmor {
|
||||
public float damageCap = -1;
|
||||
public float damageMod = -1;
|
||||
public float damageThreshold = 0;
|
||||
public float protectionYield = 100F;
|
||||
public boolean fireproof = false;
|
||||
public boolean noHelmet = false;
|
||||
public boolean vats = false;
|
||||
@ -93,6 +94,11 @@ public class ArmorFSB extends ItemArmor {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setProtectionLevel(float damageYield) {
|
||||
this.protectionYield = damageYield;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setBlastProtection(float blastProtection) {
|
||||
this.blastProtection = blastProtection;
|
||||
return this;
|
||||
@ -171,6 +177,7 @@ public class ArmorFSB extends ItemArmor {
|
||||
this.damageCap = original.damageCap;
|
||||
this.damageMod = original.damageMod;
|
||||
this.damageThreshold = original.damageThreshold;
|
||||
this.protectionYield = original.protectionYield;
|
||||
this.blastProtection = original.blastProtection;
|
||||
this.projectileProtection = original.projectileProtection;
|
||||
this.fireproof = original.fireproof;
|
||||
@ -217,12 +224,10 @@ public class ArmorFSB extends ItemArmor {
|
||||
}
|
||||
|
||||
if(blastProtection != -1) {
|
||||
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.blastProtection", blastProtection));
|
||||
}
|
||||
|
||||
if(projectileProtection != -1) {
|
||||
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.projectileProtection", projectileProtection));
|
||||
}
|
||||
|
||||
@ -265,6 +270,10 @@ public class ArmorFSB extends ItemArmor {
|
||||
if(gravity != 0) {
|
||||
list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity));
|
||||
}
|
||||
|
||||
if(protectionYield != 100F) {
|
||||
list.add(EnumChatFormatting.BLUE + " Protection applies to damage <" + protectionYield);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasFSBArmor(EntityPlayer player) {
|
||||
@ -361,32 +370,37 @@ public class ArmorFSB extends ItemArmor {
|
||||
if(ArmorFSB.hasFSBArmor(player)) {
|
||||
|
||||
ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem();
|
||||
|
||||
//store any damage above the yield
|
||||
float overFlow = Math.max(0, event.ammount - chestplate.protectionYield);
|
||||
//reduce the damage to the yield cap if it exceeds the yield
|
||||
event.ammount = Math.min(event.ammount, chestplate.protectionYield);
|
||||
|
||||
if(event.ammount < 100) {
|
||||
if(!event.source.isUnblockable())
|
||||
event.ammount -= chestplate.damageThreshold;
|
||||
|
||||
if(!event.source.isUnblockable())
|
||||
event.ammount -= chestplate.damageThreshold;
|
||||
|
||||
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.projectileProtection != -1 && event.source.isProjectile()) {
|
||||
event.ammount *= chestplate.projectileProtection;
|
||||
}
|
||||
|
||||
if(chestplate.damageCap != -1) {
|
||||
event.ammount = Math.min(event.ammount, chestplate.damageCap);
|
||||
}
|
||||
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.projectileProtection != -1 && event.source.isProjectile()) {
|
||||
event.ammount *= chestplate.projectileProtection;
|
||||
}
|
||||
|
||||
if(chestplate.damageCap != -1) {
|
||||
event.ammount = Math.min(event.ammount, chestplate.damageCap);
|
||||
}
|
||||
|
||||
//add back anything that was above the protection yield before
|
||||
event.ammount += overFlow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -588,6 +588,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeZombie.class, new RenderSiegeZombie());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeUFO.class, new RenderSiegeUFO());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeCraft.class, new RenderSiegeCraft());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeSkeleton.class, new RenderSiegeSkeleton());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost());
|
||||
//"particles"
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 }));
|
||||
|
||||
@ -391,7 +391,7 @@ public class CraftingManager {
|
||||
|
||||
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete });
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ModItems.oil_tar });
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() });
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass });
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_light), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.glowstone });
|
||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_lamp_off), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.redstone_lamp });
|
||||
@ -665,7 +665,7 @@ public class CraftingManager {
|
||||
|
||||
addRecipeAuto(new ItemStack(Blocks.torch, 3), new Object[] { "L", "S", 'L', LIGNITE.gem(), 'S', KEY_STICK });
|
||||
addRecipeAuto(new ItemStack(Blocks.torch, 6), new Object[] { "L", "S", 'L', ModItems.briquette_lignite, 'S', KEY_STICK });
|
||||
addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ModItems.coke, 'S', KEY_STICK });
|
||||
addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth });
|
||||
@ -720,8 +720,8 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() });
|
||||
addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ModItems.oil_tar });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "ITI", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot(), 'T', ModItems.oil_tar });
|
||||
addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "ITI", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot(), 'T', ANY_TAR.any() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', POLYMER.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS });
|
||||
@ -840,7 +840,7 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', KEY_GREEN });
|
||||
|
||||
addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', KEY_SLIME, 'P', Items.paper });
|
||||
addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ModItems.oil_tar, 'P', Items.paper });
|
||||
addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ANY_TAR.any(), 'P', Items.paper });
|
||||
addRecipeAuto(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper });
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
package com.hbm.render.entity.mob;
|
||||
|
||||
import com.hbm.entity.mob.siege.EntitySiegeSkeleton;
|
||||
import com.hbm.entity.mob.siege.SiegeTier;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import net.minecraft.client.model.ModelSkeleton;
|
||||
import net.minecraft.client.renderer.entity.RenderBiped;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class RenderSiegeSkeleton extends RenderBiped {
|
||||
|
||||
public RenderSiegeSkeleton() {
|
||||
super(new ModelSkeleton() {
|
||||
|
||||
@Override
|
||||
public void setLivingAnimations(EntityLivingBase entity, float f0, float f1, float f2) {
|
||||
this.aimedBow = true;
|
||||
}
|
||||
}, 0.5F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(EntityLiving entity) {
|
||||
return this.getEntityTexture((EntitySiegeSkeleton) entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity entity) {
|
||||
return this.getEntityTexture((EntitySiegeSkeleton) entity);
|
||||
}
|
||||
|
||||
protected ResourceLocation getEntityTexture(EntitySiegeSkeleton entity) {
|
||||
SiegeTier tier = entity.getTier();
|
||||
return new ResourceLocation(RefStrings.MODID + ":textures/entity/siege_" + tier.name + ".png");
|
||||
}
|
||||
}
|
||||
@ -26,7 +26,7 @@ public class TileEntityProxyBase extends TileEntity {
|
||||
|
||||
TileEntity te = worldObj.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(te != null)
|
||||
if(te != null && te != this)
|
||||
return te;
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 679 B After Width: | Height: | Size: 681 B |
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
BIN
src/main/resources/assets/hbm/textures/items/coke.lignite.png
Normal file
|
After Width: | Height: | Size: 485 B |
BIN
src/main/resources/assets/hbm/textures/items/coke.petroleum.png
Normal file
|
After Width: | Height: | Size: 476 B |
BIN
src/main/resources/assets/hbm/textures/items/oil_tar.crack.png
Normal file
|
After Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 286 B |
BIN
src/main/resources/assets/hbm/textures/items/source.png
Normal file
|
After Width: | Height: | Size: 287 B |
@ -0,0 +1,5 @@
|
||||
{
|
||||
"animation": {
|
||||
|
||||
}
|
||||
}
|
||||