tweaks, recipes, hydrotreater texture

This commit is contained in:
Boblet 2024-02-12 16:49:47 +01:00
parent 6ca2fc463a
commit 6f00c68051
16 changed files with 116 additions and 31 deletions

View File

@ -48,6 +48,17 @@
* Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural
* Fallout's range-based effects now have a more natural gradient instead of creating smooth rings
* Fallout has been made significantly darker and less saturated to blend in with the crater more
* Except for solid fueled missiles, all missiles are now fueled in the launch pad and no longer need to be crafted with fuel
* Missile fuel types have been adjusted
* Tier 0: Solid Fuel
* Tier 1: Ethanol + Peroxide
* Tier 2: Kerosene + Peroxide
* Tier 3: Kerosene + LOXY
* Tier 4: Jet Fuel + LOXY
* The micro EMP has been made cheaper, while the schrabidium missile has been made more expensive
* Oxyhydrogen can now be made by mixing air (i.e. nothing) with hydrogen
* The oxygen + hydrogen recipe remains in order to give an option to void oxygen without needing to resort to flare stacks
* Removed some of the lower tier items fomr the red room loot pool, making the average red room better
## Fixed
* Fixed dupe caused by shift-clicking ashes out of the bricked furnace

View File

@ -221,26 +221,21 @@ public class BlockKeyhole extends BlockStone {
public static void initPedestal() {
pedestalItems = new ArrayList();
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.night_vision), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.protection_charm), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.lodestone), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_aos), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_qos), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5));
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5));

View File

@ -30,10 +30,8 @@ public class WeaponRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, ModItems.bucket_mud, ModItems.powder_spark_mix, ModItems.powder_magic });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH) });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb, ModItems.circuit_targeting_tier3 });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_anti_ballistic, 1), new Object[] { ModItems.missile_generic, ModItems.circuit_targeting_tier3 });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_anti_schrabidium, ANY_HARDPLASTIC.ingot() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb });
//Missile fins
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_stability_10_flat, 1), new Object[] { "PSP", "P P", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold });

View File

@ -1,5 +1,6 @@
package com.hbm.entity.effect;
import java.awt.Color;
import java.util.ArrayList;
import com.hbm.util.BobMathUtil;
@ -460,6 +461,17 @@ public class EntityNukeTorex extends Entity {
Math.max(col * 2, 0.25),
Math.max(col * 0.5, 0.25)
);
} else if(type == 2) {
Color color = Color.getHSBColor(this.angle / 2F / (float) Math.PI, 1F, 1F);
if(this.type == TorexType.RING) {
this.color = Vec3.createVectorHelper(
Math.max(col * 1, 0.25),
Math.max(col * 1, 0.25),
Math.max(col * 1, 0.25)
);
} else {
this.color = Vec3.createVectorHelper(color.getRed() / 255D, color.getGreen() / 255D, color.getBlue() / 255D);
}
} else {
this.color = Vec3.createVectorHelper(
Math.max(col * 2, 0.25),

View File

@ -90,6 +90,7 @@ public class ArcWelderRecipes extends SerializableRecipe {
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plateCast(), 3)));
//Missiles
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_anti_ballistic), 100, 5_000L, new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.missile_assembly), new ComparableStack(ModItems.thruster_small, 4)));
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small)));
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small)));
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small)));

View File

@ -178,7 +178,7 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100);
makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200);
makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200);
makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200);
makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200);
makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800);
makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100);
makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150);

View File

@ -71,7 +71,9 @@ public class MixerRecipes extends SerializableRecipe {
register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust())));
register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500)));
register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500)));
register(Fluids.OXYHYDROGEN,
new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)),
new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500)));
register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0)));
register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0)));

View File

@ -15,7 +15,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
public class ItemModCard extends ItemArmorMod {
public ItemModCard() {
super(ArmorModHandler.helmet_only, true, false, false, false);
super(ArmorModHandler.helmet_only, true, true, false, false);
this.setCreativeTab(null);
}

View File

@ -14,7 +14,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
public class ItemModCharm extends ItemArmorMod {
public ItemModCharm() {
super(ArmorModHandler.helmet_only, false, true, false, false);
super(ArmorModHandler.helmet_only, true, true, false, false);
}
@Override

View File

@ -13,7 +13,7 @@ import net.minecraft.util.EnumChatFormatting;
public class ItemModMedal extends ItemArmorMod {
public ItemModMedal() {
super(ArmorModHandler.extra, false, true, false, false);
super(ArmorModHandler.plate_only, true, true, false, false);
}
@Override

View File

@ -18,7 +18,7 @@ public class ItemModV1 extends ItemArmorMod implements IArmorModDash {
private static final UUID speed = UUID.fromString("1d11e63e-28c4-4e14-b09f-fe0bd1be708f");
public ItemModV1() {
super(ArmorModHandler.extra, false, true, false, false);
super(ArmorModHandler.plate_only, false, true, false, false);
}
@Override

View File

@ -1,6 +1,8 @@
package com.hbm.tileentity.bomb;
import com.hbm.inventory.container.ContainerLaunchPadLarge;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUILaunchPadLarge;
import com.hbm.items.weapon.ItemMissile;
import com.hbm.tileentity.IGUIProvider;
@ -8,6 +10,7 @@ import com.hbm.tileentity.IRadarCommandReceiver;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@ -17,9 +20,10 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IRadarCommandReceiver {
public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver {
public ItemStack toRender;
public int formFactor = -1;
@ -35,15 +39,21 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I
public float prevLift = 1F;
public float prevErector = 90F;
public float syncLift;
public float syncErector ;
public int delay = 20;
public float syncErector;
private int sync;
/** Delay between erector movements */
public int delay = 20;
public long power;
public final long maxPower = 100_000;
public FluidTank[] tanks;
public TileEntityLaunchPadLarge() {
super(7);
this.tanks = new FluidTank[2];
this.tanks[0] = new FluidTank(Fluids.NONE, 24_000);
this.tanks[1] = new FluidTank(Fluids.NONE, 24_000);
}
@Override
@ -61,7 +71,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I
if(slots[0] != null) {
if(slots[0].getItem() instanceof ItemMissile) {
this.formFactor = ((ItemMissile) slots[0].getItem()).formFactor.ordinal();
ItemMissile missile = (ItemMissile) slots[0].getItem();
this.formFactor = missile.formFactor.ordinal();
setFuel(missile);
}
if(this.erector == 90F && this.lift == 1F) {
@ -148,6 +160,28 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I
}
}
}
@SuppressWarnings("incomplete-switch") //shut up
public void setFuel(ItemMissile missile) {
switch(missile.fuel) {
case ETHANOL_PEROXIDE:
tanks[0].setTankType(Fluids.ETHANOL);
tanks[1].setTankType(Fluids.ACID);
break;
case KEROSENE_PEROXIDE:
tanks[0].setTankType(Fluids.KEROSENE);
tanks[1].setTankType(Fluids.ACID);
break;
case KEROSENE_LOXY:
tanks[0].setTankType(Fluids.KEROSENE);
tanks[1].setTankType(Fluids.OXYGEN);
break;
case JETFUEL_LOXY:
tanks[0].setTankType(Fluids.KEROSENE_REFORM);
tanks[1].setTankType(Fluids.OXYGEN);
break;
}
}
@Override
public void serialize(ByteBuf buf) {
@ -189,21 +223,34 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I
this.sync = 3;
}
}
@Override
public long getPower() {
return power;
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
power = nbt.getLong("power");
this.erected = nbt.getBoolean("erected");
this.readyToLoad = nbt.getBoolean("readyToLoad");
this.lift = nbt.getFloat("lift");
this.erector = nbt.getFloat("erector");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setLong("power", power);
nbt.setBoolean("erected", erected);
nbt.setBoolean("readyToLoad", readyToLoad);
nbt.setFloat("lift", lift);
nbt.setFloat("erector", erector);
}
@Override
public void setPower(long power) {
this.power = power;
}
@Override
public long getMaxPower() {
return maxPower;
}
@Override public long getPower() { return power; }
@Override public void setPower(long power) { this.power = power; }
@Override public long getMaxPower() { return maxPower; }
@Override public FluidTank[] getAllTanks() { return this.tanks; }
@Override public FluidTank[] getReceivingTanks() { return this.tanks; }
@Override
public boolean sendCommandPosition(int x, int y, int z) {

View File

@ -19,6 +19,7 @@ import api.hbm.energy.IEnergyUser;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
@ -73,8 +74,22 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme
}
}
}
this.networkPackNT(25);
}
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
for(int i = 0; i < 4; i++) tanks[i].serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
for(int i = 0; i < 4; i++) tanks[i].deserialize(buf);
}
private void reform() {

View File

@ -343,6 +343,7 @@ container.heaterFirebox=Feuerbüchse
container.heaterHeatex=Wärmetauscher
container.heaterOilburner=Brenner
container.heaterOven=Heizofen
container.hydrotreater=Hydrotreater
container.iGenerator=Industrieller Generator
container.keyForge=Schlossertisch
container.launchPad=Raketenabschussrampe
@ -4051,6 +4052,7 @@ tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.$Kann mit ei
tile.heater_oven.name=Heizofen
tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf.
tile.hev_battery.name=Anzugs-Batterie
tile.machine_hydrotreater.name=Hydrotreater
tile.impact_dirt.name=Versengte Erde
tile.iter.name=Kernfusionsreaktor
tile.ladder_aluminium.name=Aluminiumleiter

View File

@ -702,6 +702,7 @@ container.heaterFirebox=Firebox
container.heaterHeatex=Heat Exchanger
container.heaterOilburner=Fluid Burner
container.heaterOven=Heating Oven
container.hydrotreater=Hydrotreater
container.iGenerator=Industrial Generator
container.keyForge=Locksmith Table
container.launchPad=Missile Launch Pad
@ -5053,6 +5054,7 @@ tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with
tile.heater_oven.name=Heating Oven
tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency.
tile.hev_battery.name=Suit Battery
tile.machine_hydrotreater.name=Hydrotreater
tile.impact_dirt.name=Scorched Dirt
tile.iter.name=Fusion Reactor
tile.ladder_aluminium.name=Aluminium Ladder

Binary file not shown.

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 2.0 KiB