mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
time to eat 40lbs of dynamite then die
This commit is contained in:
parent
6027ad963b
commit
a814e581b9
35
changelog
35
changelog
@ -1,25 +1,16 @@
|
|||||||
## Added
|
|
||||||
* Bauxite processing
|
|
||||||
* Bauxite is now processed by mixing it with lye, and then fractioning it into sodium aluminate and red mud
|
|
||||||
* Red mud can now be turned into cement
|
|
||||||
* Sodium aluminate can either be processed directly into aluminium in a rotary furnace, or turned into alumina with fluorite to be used in an electrolyzer
|
|
||||||
* Standard aluminium ore is now "aluminium-bearing ore" which drops cryolite, which can either be smelted into aluminium like normal or combination smelted into aluminium and lye
|
|
||||||
* Particle accelerator
|
|
||||||
* Should be about finished now
|
|
||||||
* Recipes should now be doable
|
|
||||||
* Added recipes to all the components
|
|
||||||
* Changed the dipole mechanic from a momentum penalty to a power draw penalty for smaller accelerator rings
|
|
||||||
* Added explicit compressor recipes for perfluoromethyl in order to change the standard compression speed of 100 ticks to 50
|
|
||||||
* All the parts have tooltips, you'll figure it out
|
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
* Blast doors will now pulverize any block that gets in their way during closing
|
* Changed PA power draw penalties from x5 to x10
|
||||||
* The nuclear and RTG furnaces will be retired, their recipes have been removed but they remain operational for now
|
* Particles will now crash instantly if the dipole has both penalties in effect (underspeed + undersized ring)
|
||||||
* Changed the magnetron recipe to be 3 copper plates and 4 tungsten wires
|
* This means that undersized accelerators require appropriate tier coils, and overtiered accelerators (i.e. high coils for low velocities) need to meet the size requirement
|
||||||
* Added recipes to some secret ammo types
|
* Accelerators where both penalties take effect are usually tiny ones with single tier coils (usually the highest tier required) which are lame
|
||||||
|
* DNT nano suit helmets now require quantum circuits instead of bismuth ones
|
||||||
|
* Made particle capsules more expensive
|
||||||
|
* Since invalid recipes no longer void containers, this shouldn't really be a huge deal
|
||||||
|
* Both quadrupoles and dipoles now have a power cap of 2.5MHE
|
||||||
|
* RFCs now use 250kHE per pass (instead of 100k)
|
||||||
|
* Heavy water extraction now has a NEI handler
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed the CCGT's steam output breaking as soon as the steam buffer runs full
|
* Fixed particle detector not consuming power
|
||||||
* Fixed crash caused by mobs holding belt-fed guns
|
* Fixed empty capsules not being recoverable from the color coded slots on the particle source
|
||||||
* Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped)
|
* Fixed particle detector nor charging from batteries
|
||||||
* Fixed stinger playing its lockon sound on the wrong side
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
mod_version=1.0.27
|
mod_version=1.0.27
|
||||||
# Empty build number makes a release type
|
# Empty build number makes a release type
|
||||||
mod_build_number=5229
|
mod_build_number=5230
|
||||||
|
|
||||||
credits=HbMinecraft,\
|
credits=HbMinecraft,\
|
||||||
\ rodolphito (explosion algorithms),\
|
\ rodolphito (explosion algorithms),\
|
||||||
@ -39,6 +39,7 @@ credits=HbMinecraft,\
|
|||||||
\ Nos (models),\
|
\ Nos (models),\
|
||||||
\ Minecreep (models),\
|
\ Minecreep (models),\
|
||||||
\ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\
|
\ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\
|
||||||
|
\ instantnootles (concept artist),\
|
||||||
\ haru315 (spiral point algorithm),\
|
\ haru315 (spiral point algorithm),\
|
||||||
\ Sten89 (models),\
|
\ Sten89 (models),\
|
||||||
\ Pixelguru26 (textures),\
|
\ Pixelguru26 (textures),\
|
||||||
|
|||||||
@ -89,7 +89,7 @@ public class ArmorRecipes {
|
|||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_legs, 1), new Object[] { "MPM", "PBP", "PDP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_legs, 'D', ModItems.billet_polonium });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_legs, 1), new Object[] { "MPM", "PBP", "PDP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_legs, 'D', ModItems.billet_polonium });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_boots, 1), new Object[] { "PDP", "PBP", 'P', ModItems.plate_armor_fau, 'D', ModItems.billet_polonium, 'B', ModItems.starmetal_boots });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_boots, 1), new Object[] { "PDP", "PBP", 'P', ModItems.plate_armor_fau, 'D', ModItems.billet_polonium, 'B', ModItems.starmetal_boots });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.QUANTUM) });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_plate, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_plate_jetpack, 'C', ModItems.singularity_spark });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_plate, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_plate_jetpack, 'C', ModItems.singularity_spark });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_legs, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_legs, 'C', ModItems.coin_worm });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_legs, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_legs, 'C', ModItems.coin_worm });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_boots, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_boots, 'C', ModItems.demon_core_closed });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_boots, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_boots, 'C', ModItems.demon_core_closed });
|
||||||
|
|||||||
@ -10,10 +10,12 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep;
|
|||||||
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
|
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
|
||||||
import com.hbm.items.machine.ItemFluidIcon;
|
import com.hbm.items.machine.ItemFluidIcon;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
public class BoilingHandler extends NEIUniversalHandler {
|
public class BoilingHandler extends NEIUniversalHandler {
|
||||||
|
|
||||||
public BoilingHandler() {
|
public BoilingHandler() {
|
||||||
super(ModBlocks.machine_boiler.getLocalizedName(), ModBlocks.machine_boiler, generateRecipes());
|
super(ModBlocks.machine_boiler.getLocalizedName(), new ItemStack[] { new ItemStack(ModBlocks.machine_boiler), new ItemStack(ModBlocks.machine_industrial_boiler) }, generateRecipes());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
27
src/main/java/com/hbm/handler/nei/DeuteriumHandler.java
Normal file
27
src/main/java/com/hbm/handler/nei/DeuteriumHandler.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.hbm.handler.nei;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
import com.hbm.items.machine.ItemFluidIcon;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class DeuteriumHandler extends NEIUniversalHandler {
|
||||||
|
|
||||||
|
public DeuteriumHandler() {
|
||||||
|
super(ModBlocks.machine_deuterium_extractor.getLocalizedName(), new ItemStack[] { new ItemStack(ModBlocks.machine_deuterium_extractor), new ItemStack(ModBlocks.machine_deuterium_tower) }, generateRecipes());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getKey() {
|
||||||
|
return "ntmDeuterium";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<Object, Object> generateRecipes() {
|
||||||
|
HashMap<Object, Object> map = new HashMap();
|
||||||
|
map.put(ItemFluidIcon.make(Fluids.WATER, 1_000), ItemFluidIcon.make(Fluids.HEAVYWATER, 20));
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -46,5 +46,6 @@ public class ItemPACoil extends ItemEnumMulti {
|
|||||||
list.add(EnumChatFormatting.BLUE + "Dipole minimum side length: " + EnumChatFormatting.RESET + type.diDistMin);
|
list.add(EnumChatFormatting.BLUE + "Dipole minimum side length: " + EnumChatFormatting.RESET + type.diDistMin);
|
||||||
list.add(EnumChatFormatting.RED + "Minimums not met result in a power draw penalty!");
|
list.add(EnumChatFormatting.RED + "Minimums not met result in a power draw penalty!");
|
||||||
list.add(EnumChatFormatting.RED + "Maximums exceeded result in the particle crashing!");
|
list.add(EnumChatFormatting.RED + "Maximums exceeded result in the particle crashing!");
|
||||||
|
list.add(EnumChatFormatting.RED + "Particles will crash in dipoles if both penalties take effect!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
|||||||
public class RefStrings {
|
public class RefStrings {
|
||||||
public static final String MODID = "hbm";
|
public static final String MODID = "hbm";
|
||||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||||
public static final String VERSION = "1.0.27 BETA (5229)";
|
public static final String VERSION = "1.0.27 BETA (5230)";
|
||||||
//HBM's Beta Naming Convention:
|
//HBM's Beta Naming Convention:
|
||||||
//V T (X)
|
//V T (X)
|
||||||
//V -> next release version
|
//V -> next release version
|
||||||
|
|||||||
@ -126,7 +126,7 @@ public class CraftingManager {
|
|||||||
|
|
||||||
addRecipeAuto(new ItemStack(ModItems.cell_empty, 6), new Object[] { " S ", "G G", " S ", 'S', STEEL.plate(), 'G', KEY_ANYPANE });
|
addRecipeAuto(new ItemStack(ModItems.cell_empty, 6), new Object[] { " S ", "G G", " S ", 'S', STEEL.plate(), 'G', KEY_ANYPANE });
|
||||||
addRecipeAuto(new ItemStack(ModItems.cell_deuterium, 8), new Object[] { "DDD", "DTD", "DDD", 'D', ModItems.cell_empty, 'T', ModItems.mike_deut });
|
addRecipeAuto(new ItemStack(ModItems.cell_deuterium, 8), new Object[] { "DDD", "DTD", "DDD", 'D', ModItems.cell_empty, 'T', ModItems.mike_deut });
|
||||||
addRecipeAuto(new ItemStack(ModItems.particle_empty, 2), new Object[] { "STS", "G G", "STS", 'S', STEEL.plate(), 'T', W.ingot(), 'G', KEY_ANYPANE });
|
addRecipeAuto(new ItemStack(ModItems.particle_empty, 2), new Object[] { "STS", "G G", "STS", 'S', PB.plateCast(), 'T', ModItems.coil_gold, 'G', KEY_ANYPANE });
|
||||||
addShapelessAuto(new ItemStack(ModItems.particle_copper, 1), new Object[] { ModItems.particle_empty, CU.dust(), ModItems.pellet_charged });
|
addShapelessAuto(new ItemStack(ModItems.particle_copper, 1), new Object[] { ModItems.particle_empty, CU.dust(), ModItems.pellet_charged });
|
||||||
addShapelessAuto(new ItemStack(ModItems.particle_lead, 1), new Object[] { ModItems.particle_empty, PB.dust(), ModItems.pellet_charged });
|
addShapelessAuto(new ItemStack(ModItems.particle_lead, 1), new Object[] { ModItems.particle_empty, PB.dust(), ModItems.pellet_charged });
|
||||||
addShapelessAuto(new ItemStack(ModItems.cell_antimatter, 1), new Object[] { ModItems.particle_aproton, ModItems.particle_aelectron, ModItems.cell_empty });
|
addShapelessAuto(new ItemStack(ModItems.cell_antimatter, 1), new Object[] { ModItems.particle_aproton, ModItems.particle_aelectron, ModItems.cell_empty });
|
||||||
|
|||||||
@ -70,6 +70,7 @@ public class NEIRegistry {
|
|||||||
handlers.add(new AmmoPressHandler());
|
handlers.add(new AmmoPressHandler());
|
||||||
handlers.add(new CompressorHandler());
|
handlers.add(new CompressorHandler());
|
||||||
handlers.add(new ParticleAcceleratorHandler());
|
handlers.add(new ParticleAcceleratorHandler());
|
||||||
|
handlers.add(new DeuteriumHandler());
|
||||||
|
|
||||||
//this shit comes last
|
//this shit comes last
|
||||||
handlers.add(new FluidRecipeHandler());
|
handlers.add(new FluidRecipeHandler());
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.hbm.inventory.container.ContainerPADetector;
|
|||||||
import com.hbm.inventory.gui.GUIPADetector;
|
import com.hbm.inventory.gui.GUIPADetector;
|
||||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes;
|
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes;
|
||||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe;
|
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe;
|
||||||
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.machine.albion.TileEntityPASource.PAState;
|
import com.hbm.tileentity.machine.albion.TileEntityPASource.PAState;
|
||||||
import com.hbm.tileentity.machine.albion.TileEntityPASource.Particle;
|
import com.hbm.tileentity.machine.albion.TileEntityPASource.Particle;
|
||||||
@ -32,6 +33,16 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
|||||||
return "container.paDetector";
|
return "container.paDetector";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity() {
|
||||||
|
|
||||||
|
if(!worldObj.isRemote) {
|
||||||
|
this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower());
|
||||||
|
}
|
||||||
|
|
||||||
|
super.updateEntity();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DirPos[] getConPos() {
|
public DirPos[] getConPos() {
|
||||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||||
@ -131,6 +142,8 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.power -= this.usage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canAccept(ParticleAcceleratorRecipe recipe) {
|
public boolean canAccept(ParticleAcceleratorRecipe recipe) {
|
||||||
|
|||||||
@ -40,7 +40,7 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMaxPower() {
|
public long getMaxPower() {
|
||||||
return 5_000_000;
|
return 2_500_000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -70,8 +70,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
|||||||
int mult = 1;
|
int mult = 1;
|
||||||
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
||||||
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
||||||
if(type.diMin > particle.momentum) mult *= 5;
|
if(type.diMin > particle.momentum) mult *= 10;
|
||||||
if(type.diDistMin > particle.distanceTraveled) mult *= 5;
|
if(type.diDistMin > particle.distanceTraveled) mult *= 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
||||||
|
|||||||
@ -31,7 +31,7 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMaxPower() {
|
public long getMaxPower() {
|
||||||
return 1_000_000;
|
return 2_500_000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -53,7 +53,7 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
|
|||||||
int mult = 1;
|
int mult = 1;
|
||||||
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
||||||
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
||||||
mult = type.quadMin > particle.momentum ? 5 : 1;
|
mult = type.quadMin > particle.momentum ? 10 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||||||
|
|
||||||
public class TileEntityPARFC extends TileEntityCooledBase implements IGUIProvider, IParticleUser {
|
public class TileEntityPARFC extends TileEntityCooledBase implements IGUIProvider, IParticleUser {
|
||||||
|
|
||||||
public static final long usage = 100_000;
|
public static final long usage = 250_000;
|
||||||
public static final int momentumGain = 100;
|
public static final int momentumGain = 100;
|
||||||
public static final int defocusGain = 100;
|
public static final int defocusGain = 100;
|
||||||
|
|
||||||
|
|||||||
@ -164,8 +164,8 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
|||||||
|
|
||||||
//reusing the same fucking instance because doing anything else would be retarded
|
//reusing the same fucking instance because doing anything else would be retarded
|
||||||
public static final BlockPos cheapAss = new BlockPos(0, 0, 0);
|
public static final BlockPos cheapAss = new BlockPos(0, 0, 0);
|
||||||
public static final int[] slotsRed = new int[] {1};
|
public static final int[] slotsRed = new int[] {1, 3, 4};
|
||||||
public static final int[] slotsYellow = new int[] {2};
|
public static final int[] slotsYellow = new int[] {2, 3, 4};
|
||||||
@Override
|
@Override
|
||||||
public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) {
|
public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) {
|
||||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user