Merge remote-tracking branch 'HbmMods/master'

This commit is contained in:
Vaern 2022-01-26 16:21:51 -08:00
commit a490935a44
31 changed files with 541 additions and 182 deletions

View File

@ -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 });

View File

@ -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);

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}
}
}

View File

@ -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);

View File

@ -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)

View File

@ -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:

View File

@ -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);

View File

@ -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) {

View File

@ -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) {

View File

@ -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),

View 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
}
}

View File

@ -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());

View File

@ -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;
}
}
}

View File

@ -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 }));

View File

@ -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 });

View File

@ -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");
}
}

View File

@ -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;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 681 B

View File

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

View File

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

View File

@ -0,0 +1,5 @@
{
"animation": {
}
}