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
|
||||
* Blast doors will now pulverize any block that gets in their way during closing
|
||||
* The nuclear and RTG furnaces will be retired, their recipes have been removed but they remain operational for now
|
||||
* Changed the magnetron recipe to be 3 copper plates and 4 tungsten wires
|
||||
* Added recipes to some secret ammo types
|
||||
* Changed PA power draw penalties from x5 to x10
|
||||
* Particles will now crash instantly if the dipole has both penalties in effect (underspeed + undersized ring)
|
||||
* 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
|
||||
* 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 the CCGT's steam output breaking as soon as the steam buffer runs full
|
||||
* Fixed crash caused by mobs holding belt-fed guns
|
||||
* Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped)
|
||||
* Fixed stinger playing its lockon sound on the wrong side
|
||||
* Fixed particle detector not consuming power
|
||||
* Fixed empty capsules not being recoverable from the color coded slots on the particle source
|
||||
* Fixed particle detector nor charging from batteries
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5229
|
||||
mod_build_number=5230
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
@ -39,6 +39,7 @@ credits=HbMinecraft,\
|
||||
\ Nos (models),\
|
||||
\ Minecreep (models),\
|
||||
\ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\
|
||||
\ instantnootles (concept artist),\
|
||||
\ haru315 (spiral point algorithm),\
|
||||
\ Sten89 (models),\
|
||||
\ 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_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.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_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 });
|
||||
|
||||
@ -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.items.machine.ItemFluidIcon;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class BoilingHandler extends NEIUniversalHandler {
|
||||
|
||||
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
|
||||
|
||||
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.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 + "Particles will crash in dipoles if both penalties take effect!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
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:
|
||||
//V T (X)
|
||||
//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_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_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 });
|
||||
|
||||
@ -70,6 +70,7 @@ public class NEIRegistry {
|
||||
handlers.add(new AmmoPressHandler());
|
||||
handlers.add(new CompressorHandler());
|
||||
handlers.add(new ParticleAcceleratorHandler());
|
||||
handlers.add(new DeuteriumHandler());
|
||||
|
||||
//this shit comes last
|
||||
handlers.add(new FluidRecipeHandler());
|
||||
|
||||
@ -4,6 +4,7 @@ import com.hbm.inventory.container.ContainerPADetector;
|
||||
import com.hbm.inventory.gui.GUIPADetector;
|
||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes;
|
||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.machine.albion.TileEntityPASource.PAState;
|
||||
import com.hbm.tileentity.machine.albion.TileEntityPASource.Particle;
|
||||
@ -32,6 +33,16 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
||||
return "container.paDetector";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower());
|
||||
}
|
||||
|
||||
super.updateEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DirPos[] getConPos() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
@ -131,6 +142,8 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.power -= this.usage;
|
||||
}
|
||||
|
||||
public boolean canAccept(ParticleAcceleratorRecipe recipe) {
|
||||
|
||||
@ -40,7 +40,7 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
||||
|
||||
@Override
|
||||
public long getMaxPower() {
|
||||
return 5_000_000;
|
||||
return 2_500_000;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -70,8 +70,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
||||
int mult = 1;
|
||||
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
||||
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
||||
if(type.diMin > particle.momentum) mult *= 5;
|
||||
if(type.diDistMin > particle.distanceTraveled) mult *= 5;
|
||||
if(type.diMin > particle.momentum) mult *= 10;
|
||||
if(type.diDistMin > particle.distanceTraveled) mult *= 10;
|
||||
}
|
||||
|
||||
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
||||
|
||||
@ -31,7 +31,7 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
|
||||
|
||||
@Override
|
||||
public long getMaxPower() {
|
||||
return 1_000_000;
|
||||
return 2_500_000;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -53,7 +53,7 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
|
||||
int mult = 1;
|
||||
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
||||
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);
|
||||
|
||||
@ -19,7 +19,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
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 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
|
||||
public static final BlockPos cheapAss = new BlockPos(0, 0, 0);
|
||||
public static final int[] slotsRed = new int[] {1};
|
||||
public static final int[] slotsYellow = new int[] {2};
|
||||
public static final int[] slotsRed = new int[] {1, 3, 4};
|
||||
public static final int[] slotsYellow = new int[] {2, 3, 4};
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user