mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-03-11 12:15:35 +00:00
🅱️alls
This commit is contained in:
parent
f03dca7470
commit
6bfca4e1fe
88
changelog
88
changelog
@ -1,81 +1,13 @@
|
||||
## Added
|
||||
* Two new anti-material rifle variants
|
||||
* .50 BMG demolisher rounds are finally usable
|
||||
* Added a special ammo type exclusive to one of the variants
|
||||
* Starmetal .50 BMG now returns
|
||||
* Overall better armor piercing stats than DU
|
||||
* Not compatible with the M2, only usable in amat rifles
|
||||
* Reworked chemical plant
|
||||
* No longer needs template items for everything, comes with a convenient recipe selector GUI
|
||||
* Three item and three fluids for in and outputs
|
||||
* Slots are locked to the ingredients they accept, allowing for better performance and shift click support
|
||||
* Item IO now works like most other machines instead of using chutes
|
||||
* If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at
|
||||
* Now has a more convenient 3x3 footprint
|
||||
* Features 12 access ports, more than enough for full coverage of the entire machine's IO
|
||||
* Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) (doesn't work yet since we don't have secret recipe :P)
|
||||
* Ports are now standardized, no longer are fluids connected to ports that look like copper contacts
|
||||
* Can't use upgrades just yet
|
||||
|
||||
## Changed
|
||||
* Added Ukrainian localization
|
||||
* The RBMK console's grid can now be rotated using a screwdriver
|
||||
* Tool abilities have changed
|
||||
* Right-clicking while holding ALT now opens a configuration window
|
||||
* The configuration window allows creation of tool presets
|
||||
* Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch
|
||||
* Clicking on the same ability allows switching between levels
|
||||
* Updated textures for the armor and gun modification tables
|
||||
* Ported the fire extinguisher to the SEDNA gun system, eliminating the final remaining ItemGunBase gun
|
||||
* Water extinguishers can now wash away foam blocks
|
||||
* Obliterated Fabsol's vodka
|
||||
* Tier 4 heart piece is now called "heart of darkness"
|
||||
* Thermal sights now render dead mobs in black
|
||||
* Guns now have unique scope overlays instead of reusing the .44 scope for everything
|
||||
* The new chemplant has slightly altered recipes
|
||||
* Very basic mixing recipes (e.g. coolant) have been removed, it's now required to use the mixer
|
||||
* Water to hydrogen peroxide is now 1,000 : 1,000 (instead of 1,000 : 800)
|
||||
* Sulfuric acid's peroxide requirement has been adjusted accordingly
|
||||
* Nitric acid has an alternate recipe using air and water, however it takes 4x as long and has a base consumption of 2kHE/t
|
||||
* Desh now only takes 5 seconds to produce instead of 15
|
||||
* Laminate now only takes 50mB of either fluid per recipe and processes much quicker
|
||||
* Ducrete now uses U238 in the form of ferrouranium, decreasing U238 needed, and no longer requires gravel at all
|
||||
* All recipes for nuclear fuel production now have a higher base consumption
|
||||
* Base consumption in general has been tweaked for many later-game recipes. Many recipes however still use the old 100HE/t rate
|
||||
* Cordite now uses sawdust instead of wood planks and sugar
|
||||
* Kevlar is now made from aromatics, nitric acid and chlorine (or phosgene in 528 mode)
|
||||
* Electrolysis using the chemplant has been removed. Hydrogen can be made using water and coal (or coke), and oxygen can be distilled from intake air
|
||||
* Solid nuclear waste can also be vitrified now
|
||||
* Thorium salt reprocessing now only has a 50% chance to produce a U233 nugget and a 25% chance to produce nuclear waste, making it less absurdly powerful and easier to deal with the waste
|
||||
* Glyphid meat processing is now less autistic
|
||||
* Making rusty steel now only takes 2 seconds per recipe
|
||||
* Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all)
|
||||
* Recipe changes are still subject to balancing
|
||||
* Removed niter to nitric acid liquefaction recipe
|
||||
* Updated N2 model
|
||||
* Glow in the dark paint not included (yet)
|
||||
* Wooden scaffolds now have a slightly smaller hitbox and are climbable
|
||||
* Hanging chains and vines can now be climbed by holding space
|
||||
* Hopefully fixed the strand caster being weird for good
|
||||
* Removed angry metal drop from meteorites (use the assembler recipe)
|
||||
* The automatic buzzsaw can now handle crops
|
||||
* The automatic buzzsaw will no longer clip through walls when extending
|
||||
* The automatic buzzsaw can be turned off using a screwdriver
|
||||
* Template folders now support page turning via scrolling
|
||||
* Named crates will now show their names in the GUI as well as as a tooltip
|
||||
* Vanilla anvils no longer increase experience costs when renaming an item
|
||||
* Fans now have diminishing force, old behavior can be restored with the hand drill
|
||||
* Opening the tool ability configuration menu is now its own keybind instead of using the copy tool's alt keybind + right click
|
||||
* Cycling though tool abilities is now a custom keybind (still right click by default)
|
||||
* Removed legacy hardron cooler
|
||||
* Removed 20hz transformers
|
||||
* High-octane diesel is now called high-cetane diesel
|
||||
|
||||
## Fixed
|
||||
* Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts
|
||||
* Fixed strand caster fluid gauges going out of bounds
|
||||
* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers
|
||||
* Fixed non-standard template folder recipes not using the correct icon
|
||||
* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed
|
||||
* Fixed missing energy damage category localization
|
||||
* Fixed server crash caused by tool abilities
|
||||
* Fixed chunkloading entities not releasing their loading tickets properly
|
||||
* Potentially fixed a dupe issue related to tool abilities
|
||||
* Fixed certain sky features not being as bright as they should be
|
||||
* Fixed detailed hitboxes behaving weird
|
||||
* Fixed issue where empty crates would retain irrelevant NBT data, rendering them unstackable with freshly crafted crates
|
||||
* Fixed new chemical plant ports not initializing their proxies properly
|
||||
* Fixed chunkloading entities immediately throwing away their loader ticket
|
||||
* Fixed builder jetpack not resetting flight time properly
|
||||
* Fixed new chemplant's ferric schrabidate recipe
|
||||
* Fixed single reload guns reloading multiple rounds at once when having multiple valid ammo stacks
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5356
|
||||
mod_build_number=5357
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
|
||||
@ -734,7 +734,6 @@ public class ModBlocks {
|
||||
public static Block hadron_analysis_glass;
|
||||
public static Block hadron_access;
|
||||
public static Block hadron_core;
|
||||
public static Block hadron_cooler;
|
||||
|
||||
public static Block pa_source;
|
||||
public static Block pa_beamline;
|
||||
@ -854,9 +853,7 @@ public class ModBlocks {
|
||||
public static Block barrel_antimatter;
|
||||
|
||||
public static Block machine_transformer;
|
||||
public static Block machine_transformer_20;
|
||||
public static Block machine_transformer_dnt;
|
||||
public static Block machine_transformer_dnt_20;
|
||||
|
||||
public static Block machine_solar_boiler;
|
||||
public static Block solar_mirror;
|
||||
@ -1855,7 +1852,6 @@ public class ModBlocks {
|
||||
hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass");
|
||||
hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access");
|
||||
hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core");
|
||||
hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F);
|
||||
|
||||
pa_source = new BlockPASource().setStepSound(Block.soundTypeMetal).setBlockName("pa_source").setHardness(5.0F).setResistance(10.0F);
|
||||
pa_beamline = new BlockPABeamline().setStepSound(Block.soundTypeMetal).setBlockName("pa_beamline").setHardness(5.0F).setResistance(10.0F);
|
||||
@ -1985,8 +1981,6 @@ public class ModBlocks {
|
||||
|
||||
machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron");
|
||||
machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer");
|
||||
machine_transformer_20 = new MachineTransformer(Material.iron, 10000L, 20).setBlockName("machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron");
|
||||
machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer");
|
||||
|
||||
machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side");
|
||||
machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side");
|
||||
@ -3137,7 +3131,6 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName());
|
||||
register(hadron_cooler);
|
||||
|
||||
register(pa_source);
|
||||
register(pa_beamline);
|
||||
@ -3261,9 +3254,7 @@ public class ModBlocks {
|
||||
register(capacitor_tantalium);
|
||||
register(capacitor_schrabidate);
|
||||
GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_transformer_dnt_20, machine_transformer_dnt_20.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName());
|
||||
|
||||
@ -2,8 +2,9 @@ package com.hbm.blocks.machine;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockCMFlux extends BlockPillar{
|
||||
public BlockCMFlux(Material mat, String top) {
|
||||
super(mat, top);
|
||||
}
|
||||
public class BlockCMFlux extends BlockPillar {
|
||||
|
||||
public BlockCMFlux(Material mat, String top) {
|
||||
super(mat, top);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,8 +2,9 @@ package com.hbm.blocks.machine;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockCMHeat extends BlockPillar{
|
||||
public BlockCMHeat(Material mat, String top) {
|
||||
super(mat, top);
|
||||
}
|
||||
public class BlockCMHeat extends BlockPillar {
|
||||
|
||||
public BlockCMHeat(Material mat, String top) {
|
||||
super(mat, top);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
@ -18,6 +19,7 @@ public class MachineChemicalPlant extends BlockDummyable {
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityMachineChemicalPlant();
|
||||
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -2,39 +2,31 @@ package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineTransformer;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class MachineTransformer extends BlockContainer {
|
||||
|
||||
long buffer;
|
||||
int delay;
|
||||
public class MachineTransformer extends Block {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
|
||||
public MachineTransformer(Material p_i45394_1_, long b, int d) {
|
||||
super(p_i45394_1_);
|
||||
buffer = b;
|
||||
delay = d;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
|
||||
if(this == ModBlocks.machine_transformer || this == ModBlocks.machine_transformer_20) {
|
||||
if(this == ModBlocks.machine_transformer) {
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top_iron");
|
||||
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_iron");
|
||||
}
|
||||
if(this == ModBlocks.machine_transformer_dnt || this == ModBlocks.machine_transformer_dnt_20) {
|
||||
if(this == ModBlocks.machine_transformer_dnt) {
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top");
|
||||
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer");
|
||||
}
|
||||
@ -45,9 +37,4 @@ public class MachineTransformer extends BlockContainer {
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityMachineTransformer();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.hbm.entity.item;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.inventory.FluidStack;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
@ -193,7 +194,11 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory,
|
||||
@Override
|
||||
protected void loadNeighboringChunks() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
clearChunkLoader();
|
||||
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
// This is the lowest padding that worked with my drone waypoint path. if they stop getting loaded crank up paddingSize
|
||||
for (ChunkCoordIntPair chunk : ChunkShapeHelper.getChunksAlongLineSegment((int) this.posX, (int) this.posZ, (int) (this.posX + this.motionX), (int) (this.posZ + this.motionZ), 4)){
|
||||
ForgeChunkManager.forceChunk(loaderTicket, chunk);
|
||||
@ -210,6 +215,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory,
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -46,6 +46,7 @@ public abstract class EntityExplosionChunkloading extends Entity implements IChu
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.logic;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -188,12 +189,15 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader {
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
clearChunkLoader();
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.forceChunk(loaderTicket, chunk);
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.missile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.entity.projectile.EntityThrowableInterp;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
@ -202,7 +203,9 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
|
||||
clearChunkLoader();
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
loadedChunks.clear();
|
||||
for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j));
|
||||
@ -222,6 +225,7 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.missile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.entity.projectile.EntityThrowableInterp;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
@ -327,8 +328,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen
|
||||
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
|
||||
clearChunkLoader();
|
||||
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
@ -349,6 +352,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.projectile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.entity.projectile.rocketbehavior.IRocketSteeringBehavior;
|
||||
import com.hbm.entity.projectile.rocketbehavior.IRocketTargetingBehavior;
|
||||
@ -159,7 +160,9 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
|
||||
clearChunkLoader();
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
@ -179,6 +182,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.projectile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.items.weapon.ItemAmmoArty;
|
||||
import com.hbm.items.weapon.ItemAmmoArty.ArtilleryShell;
|
||||
@ -193,8 +194,10 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa
|
||||
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
|
||||
clearChunkLoader();
|
||||
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
@ -214,6 +217,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.entity.projectile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.entity.logic.IChunkLoader;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -61,13 +62,17 @@ public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunk
|
||||
public void clearChunkLoader() {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
ForgeChunkManager.releaseTicket(loaderTicket);
|
||||
this.loaderTicket = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ) {
|
||||
if(!worldObj.isRemote && loaderTicket != null) {
|
||||
|
||||
for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) {
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
clearChunkLoader();
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
|
||||
|
||||
@ -335,14 +335,14 @@ public class ExplosionNukeRayParallelized implements IExplosionRay {
|
||||
adder.add(damageAmount);
|
||||
}
|
||||
|
||||
public float getDamage(int bitIndex) {
|
||||
/*public float getDamage(int bitIndex) {
|
||||
DoubleAdder adder = damageMap.get(bitIndex);
|
||||
return adder == null ? 0f : (float) adder.sum();
|
||||
}
|
||||
}*/
|
||||
|
||||
public void clearDamage(int bitIndex) {
|
||||
/*public void clearDamage(int bitIndex) {
|
||||
damageMap.remove(bitIndex);
|
||||
}
|
||||
}*/
|
||||
|
||||
public Set<Map.Entry<Integer, DoubleAdder>> entrySet() {
|
||||
return damageMap.entrySet();
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.handler;
|
||||
|
||||
import com.hbm.inventory.gui.GUICalculator;
|
||||
import com.hbm.items.IKeybindReceiver;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
@ -14,8 +15,9 @@ import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
|
||||
import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class HbmKeybinds {
|
||||
|
||||
@ -28,6 +30,8 @@ public class HbmKeybinds {
|
||||
public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category);
|
||||
public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category);
|
||||
|
||||
public static KeyBinding abilityCycle = new KeyBinding(category + ".ability", -99, category);
|
||||
public static KeyBinding abilityAlt = new KeyBinding(category + ".abilityAlt", Keyboard.KEY_LMENU, category);
|
||||
public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category);
|
||||
public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category);
|
||||
|
||||
@ -60,6 +64,7 @@ public class HbmKeybinds {
|
||||
ClientRegistry.registerKeyBinding(craneLeftKey);
|
||||
ClientRegistry.registerKeyBinding(craneRightKey);
|
||||
ClientRegistry.registerKeyBinding(craneLoadKey);
|
||||
ClientRegistry.registerKeyBinding(abilityAlt);
|
||||
ClientRegistry.registerKeyBinding(copyToolAlt);
|
||||
ClientRegistry.registerKeyBinding(copyToolCtrl);
|
||||
}
|
||||
@ -81,12 +86,13 @@ public class HbmKeybinds {
|
||||
|
||||
@SubscribeEvent
|
||||
public void keyEvent(KeyInputEvent event) {
|
||||
EntityPlayer player = MainRegistry.proxy.me();
|
||||
if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only
|
||||
Minecraft.getMinecraft().thePlayer.closeScreen();
|
||||
player.closeScreen();
|
||||
FMLCommonHandler.instance().showGuiScreen(new GUICalculator());
|
||||
}
|
||||
|
||||
HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me());
|
||||
HbmPlayerProps props = HbmPlayerProps.getData(player);
|
||||
|
||||
for(EnumKeybind key : EnumKeybind.values()) {
|
||||
boolean last = props.getKeyPressed(key);
|
||||
@ -95,9 +101,19 @@ public class HbmKeybinds {
|
||||
if(last != current) {
|
||||
PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current));
|
||||
props.setKeyPressed(key, current);
|
||||
onPressedClient(player, key, current);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void onPressedClient(EntityPlayer player, EnumKeybind key, boolean state) {
|
||||
// ITEM HANDLING
|
||||
ItemStack held = player.getHeldItem();
|
||||
if(held != null && held.getItem() instanceof IKeybindReceiver) {
|
||||
IKeybindReceiver rec = (IKeybindReceiver) held.getItem();
|
||||
if(rec.canHandleKeybind(player, held, key)) rec.handleKeybindClient(player, held, key, state);
|
||||
}
|
||||
}
|
||||
|
||||
public static enum EnumKeybind {
|
||||
JETPACK,
|
||||
@ -111,6 +127,8 @@ public class HbmKeybinds {
|
||||
CRANE_LEFT,
|
||||
CRANE_RIGHT,
|
||||
CRANE_LOAD,
|
||||
ABILITY_CYCLE,
|
||||
ABILITY_ALT,
|
||||
TOOL_ALT,
|
||||
TOOL_CTRL,
|
||||
GUN_PRIMARY,
|
||||
|
||||
@ -217,6 +217,7 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
|
||||
.outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000)));
|
||||
|
||||
this.register(new GenericRecipe("chem.schrabidate").setup(150, 5_000)
|
||||
.inputItems(new OreDictStack(IRON.dust()))
|
||||
.inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250))
|
||||
.outputItems(new ItemStack(ModItems.powder_schrabidate)));
|
||||
|
||||
|
||||
@ -9,4 +9,5 @@ public interface IKeybindReceiver {
|
||||
|
||||
public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind);
|
||||
public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state);
|
||||
public default void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { }
|
||||
}
|
||||
|
||||
@ -71,8 +71,9 @@ public class JetpackBreak extends JetpackFueledBase {
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F);
|
||||
this.useUpFuel(player, stack, 10);
|
||||
ArmorUtil.resetFlightTime(player);
|
||||
}
|
||||
|
||||
ArmorUtil.resetFlightTime(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -13,9 +13,9 @@ import com.google.common.collect.Multimap;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.hbm.inventory.gui.GUIScreenToolAbility;
|
||||
import com.hbm.items.IItemControlReceiver;
|
||||
import com.hbm.handler.HbmKeybinds;
|
||||
import com.hbm.items.IKeybindReceiver;
|
||||
import com.hbm.handler.HbmKeybinds.EnumKeybind;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.extprop.HbmPlayerProps;
|
||||
import com.hbm.handler.ability.AvailableAbilities;
|
||||
import com.hbm.handler.ability.IBaseAbility;
|
||||
import com.hbm.handler.ability.IToolAreaAbility;
|
||||
@ -54,7 +54,7 @@ import net.minecraftforge.common.ForgeHooks;
|
||||
import net.minecraftforge.common.IShearable;
|
||||
import net.minecraftforge.event.world.BlockEvent;
|
||||
|
||||
public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver {
|
||||
public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver, IKeybindReceiver {
|
||||
|
||||
protected boolean isShears = false;
|
||||
protected EnumToolType toolType;
|
||||
@ -251,37 +251,6 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
if(!canOperate(stack))
|
||||
return super.onItemRightClick(stack, world, player);
|
||||
|
||||
if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) {
|
||||
if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0);
|
||||
return stack;
|
||||
}
|
||||
|
||||
Configuration config = getConfiguration(stack);
|
||||
|
||||
if(config.presets.size() < 2 || world.isRemote)
|
||||
return super.onItemRightClick(stack, world, player);
|
||||
|
||||
|
||||
if(player.isSneaking()) {
|
||||
config.currentPreset = 0;
|
||||
} else {
|
||||
config.currentPreset = (config.currentPreset + 1) % config.presets.size();
|
||||
}
|
||||
|
||||
setConfiguration(stack, config);
|
||||
|
||||
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player);
|
||||
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F);
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) {
|
||||
|
||||
if(world.isAirBlock(x, y, z))
|
||||
@ -521,4 +490,38 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
||||
public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIScreenToolAbility(this.availableAbilities);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) {
|
||||
if(player.worldObj.isRemote) return keybind == EnumKeybind.ABILITY_ALT;
|
||||
return keybind == EnumKeybind.ABILITY_CYCLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) {
|
||||
|
||||
if(keybind == EnumKeybind.ABILITY_CYCLE && state) {
|
||||
|
||||
World world = player.worldObj;
|
||||
if(!canOperate(stack)) return;
|
||||
|
||||
Configuration config = getConfiguration(stack);
|
||||
if(config.presets.size() < 2 || world.isRemote) return;
|
||||
|
||||
if(player.isSneaking()) {
|
||||
config.currentPreset = 0;
|
||||
} else {
|
||||
config.currentPreset = (config.currentPreset + 1) % config.presets.size();
|
||||
}
|
||||
|
||||
setConfiguration(stack, config);
|
||||
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player);
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) {
|
||||
if(state) player.openGui(MainRegistry.instance, 0, player.worldObj, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -98,6 +98,8 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
for(int i = 0; i < inventory.getSizeInventory(); i++) {
|
||||
ItemStack slot = inventory.getStackInSlot(i);
|
||||
|
||||
if(loadLimit <= 0) return;
|
||||
|
||||
if(slot != null) {
|
||||
|
||||
//mag is empty, assume next best type
|
||||
@ -110,6 +112,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit);
|
||||
this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity));
|
||||
inventory.decrStackSize(i, toLoad);
|
||||
loadLimit -= toLoad;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -124,6 +127,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit);
|
||||
this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity));
|
||||
inventory.decrStackSize(i, toLoad);
|
||||
loadLimit -= toLoad;
|
||||
}
|
||||
}
|
||||
|
||||
@ -146,6 +150,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit);
|
||||
this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity));
|
||||
if(!infBag) bag.decrStackSize(j, toLoad);
|
||||
loadLimit -= toLoad;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -160,6 +165,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit);
|
||||
this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity));
|
||||
if(!infBag) bag.decrStackSize(j, toLoad);
|
||||
loadLimit -= toLoad;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 (5356)";
|
||||
public static final String VERSION = "1.0.27 BETA (5357)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -2081,8 +2081,10 @@ public class ClientProxy extends ServerProxy {
|
||||
case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed();
|
||||
case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed();
|
||||
case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed();
|
||||
case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed();
|
||||
case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed();
|
||||
case ABILITY_CYCLE: return HbmKeybinds.abilityCycle.getIsKeyPressed();
|
||||
case ABILITY_ALT: return HbmKeybinds.abilityAlt.getIsKeyPressed();
|
||||
case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed();
|
||||
case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed();
|
||||
case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed();
|
||||
case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed();
|
||||
case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed();
|
||||
|
||||
@ -1690,6 +1690,9 @@ public class MainRegistry {
|
||||
ignoreMappings.add("hbm:item.test_nuke_tier2_bullet");
|
||||
ignoreMappings.add("hbm:item.test_nuke_tier1_target");
|
||||
ignoreMappings.add("hbm:item.test_nuke_tier2_target");
|
||||
ignoreMappings.add("hbm:tile.hadron_cooler");
|
||||
ignoreMappings.add("hbm:tile.machine_transformer_20");
|
||||
ignoreMappings.add("hbm:tile.machine_transformer_dnt_20");
|
||||
|
||||
/// REMAP ///
|
||||
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
||||
|
||||
@ -40,7 +40,6 @@ public class KeybindPacket implements IMessage {
|
||||
|
||||
EntityPlayer p = ctx.getServerHandler().playerEntity;
|
||||
HbmKeybindsServer.onPressedServer(p, EnumKeybind.values()[m.key], m.pressed);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +112,6 @@ public class TileMappings {
|
||||
put(TileEntityMachineSiren.class, "tileentity_siren");
|
||||
put(TileEntityMachineSPP.class, "tileentity_spp");
|
||||
put(TileEntityMachineRadGen.class, "tileentity_radgen");
|
||||
put(TileEntityMachineTransformer.class, "tileentity_transformer");
|
||||
put(TileEntityMachineRadarNT.class, "tileentity_radar");
|
||||
put(TileEntityMachineRadarLarge.class, "tileentity_radar_large");
|
||||
put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen");
|
||||
|
||||
@ -400,8 +400,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
int charge;
|
||||
int analysis;
|
||||
boolean isCheckExempt = false;
|
||||
int cl0 = 0;
|
||||
int cl1 = 0;
|
||||
|
||||
boolean expired = false;
|
||||
boolean cloned = false;
|
||||
@ -436,8 +434,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
p.charge = charge;
|
||||
p.analysis = analysis;
|
||||
p.isCheckExempt = isCheckExempt;
|
||||
p.cl0 = cl0;
|
||||
p.cl1 = cl1;
|
||||
p.expired = expired;
|
||||
p.plugs = new ArrayList<TileEntityHadronPower>(plugs);
|
||||
p.cloned = true;
|
||||
@ -476,27 +472,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
|
||||
if(charge < 0)
|
||||
expire(this, EnumHadronState.ERROR_NO_CHARGE);
|
||||
|
||||
if(cl0 > 0) cl0--;
|
||||
if(cl1 > 0) cl1--;
|
||||
}
|
||||
|
||||
public void incrementCharge(int coilVal) {
|
||||
//not the best code ever made but it works, dammit
|
||||
if(cl1 > 0) {
|
||||
|
||||
double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D;
|
||||
mult = Math.max(mult, 0.1D);
|
||||
coilVal *= mult;
|
||||
|
||||
} else if(cl0 > 0) {
|
||||
if(cl0 > 10) {
|
||||
coilVal *= 0.75;
|
||||
} else {
|
||||
coilVal *= 1.10;
|
||||
}
|
||||
}
|
||||
|
||||
this.momentum += coilVal;
|
||||
}
|
||||
|
||||
@ -618,11 +596,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
} else {
|
||||
p.charge -= coilVal;
|
||||
totalValue += coilVal;
|
||||
|
||||
if(block == ModBlocks.hadron_cooler) {
|
||||
if(meta == 0) p.cl0 += 10;
|
||||
if(meta == 1) p.cl1 += 5;
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
@ -842,9 +815,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
|
||||
public boolean isValidCoil(Block b) {
|
||||
if(coilValue(b) > 0) return true;
|
||||
|
||||
if(b == ModBlocks.hadron_cooler) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -862,8 +832,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe
|
||||
b instanceof BlockHadronCoil ||
|
||||
b == ModBlocks.hadron_plating_glass ||
|
||||
b == ModBlocks.hadron_analysis_glass ||
|
||||
b == ModBlocks.hadron_access ||
|
||||
b == ModBlocks.hadron_cooler;
|
||||
b == ModBlocks.hadron_access;
|
||||
}
|
||||
|
||||
public boolean isAnalysis(Block b) {
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class TileEntityMachineTransformer extends TileEntity {
|
||||
}
|
||||
@ -882,7 +882,7 @@ public class BunkerComponents {
|
||||
fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 5, ModBlocks.concrete_smooth_stairs, stairMetaW | 4);
|
||||
fillWithBlocks(world, box, 1, 1, 6, 1, 3, 6, ModBlocks.concrete_pillar);
|
||||
fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW);
|
||||
placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer_20, 0, 1, 2, 1, box);
|
||||
placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 1, 2, 1, box);
|
||||
placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box);
|
||||
placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box);
|
||||
placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box);
|
||||
|
||||
@ -707,6 +707,8 @@ hazard.particleFine=Feinstaub
|
||||
hazard.sand=Augenreizstoffe
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.ability=Werkzeug umschalten
|
||||
hbm.key.abilityAlt=Werkzeug konfigurieren
|
||||
hbm.key.calculator=Taschenrechner
|
||||
hbm.key.copyToolAlt=Kopierwerkzeug: Einfügen umschalten
|
||||
hbm.key.copyToolCtrl=Kopierwerkzeug: Auf Rohre einfügen
|
||||
@ -721,6 +723,7 @@ hbm.key.gunSecondary=Sekundärfeuer
|
||||
hbm.key.gunTertitary=Zielvisier
|
||||
hbm.key.toggleBack=Jetpack umschalten
|
||||
hbm.key.toggleHUD=HUD umschalten
|
||||
hbm.key.toggleMagnet=Magnet umschalten
|
||||
hbm.key.trainInv=Zug-Inventar
|
||||
hbm.key.reload=Nachladen
|
||||
|
||||
@ -756,8 +759,8 @@ hbmfluid.death=Osmiridiumlösung
|
||||
hbmfluid.deuterium=Deuterium
|
||||
hbmfluid.diesel=Diesel
|
||||
hbmfluid.diesel_crack=Crackdiesel
|
||||
hbmfluid.diesel_crack_reform=Hochoktan-Diesel
|
||||
hbmfluid.diesel_reform=Hochoktan-Crackdiesel
|
||||
hbmfluid.diesel_crack_reform=Hochcetan-Diesel
|
||||
hbmfluid.diesel_reform=Hochcetan-Crackdiesel
|
||||
hbmfluid.egg=Gelöstes Ei
|
||||
hbmfluid.estradiol=Estradiollösung
|
||||
hbmfluid.ethanol=Ethanol
|
||||
@ -4161,8 +4164,8 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke
|
||||
tile.factory_titanium_hull.name=Fabrikblock
|
||||
tile.fallout.name=Fallout
|
||||
tile.fan.name=Ventilator
|
||||
tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Klicken Sie mit der rechten Maustaste mit der Handbohrmaschine um den Modus zu wechseln
|
||||
tile.fan.falloffOn=Die Lüfterleistung nimmt mit der Entfernung ab
|
||||
tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Rechtsclick mit Handbohrmaschine um den Modus zu wechseln
|
||||
tile.fan.falloffOn=Die Ventilatorleistung nimmt mit Entfernung ab
|
||||
tile.fan.falloffOff=Konstante Lüfterleistung
|
||||
tile.fence_metal.name=Maschendrahtzaun
|
||||
tile.fence_metal_post.name=Maschendrahtzaun-Pfahl
|
||||
@ -4262,8 +4265,6 @@ tile.hadron_coil_neodymium.name=Dichte Neodymspule
|
||||
tile.hadron_coil_schrabidate.name=Dichte Schrabidatspule
|
||||
tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule
|
||||
tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule
|
||||
tile.hadron_cooler.name=Teilchenbeschleuniger-Kühlungseinheit
|
||||
tile.hadron_cooler_mk2.nameTeilchenbeschleuniger-Kühlungseinheit - Das Palindrome-Spezial
|
||||
tile.hadron_core.name=Teilchenbeschleuniger-Kernkomponente
|
||||
tile.hadron_diode.name=Schottky-Partikeldiode
|
||||
tile.hadron_plating.name=Teilchenbeschleuniger-Außenwand
|
||||
|
||||
@ -1414,6 +1414,8 @@ hazard.particleFine=Particulates
|
||||
hazard.sand=Eye Irritants
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.ability=Cycle Tool Abilities
|
||||
hbm.key.abilityAlt=Configure Tool Abilities
|
||||
hbm.key.calculator=Calculator
|
||||
hbm.key.copyToolAlt=Copy Tool: Switch Paste
|
||||
hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes
|
||||
@ -1428,6 +1430,7 @@ hbm.key.gunSecondary=Secondary Fire
|
||||
hbm.key.gunTertitary=Gun Sights
|
||||
hbm.key.toggleBack=Toggle Jetpack
|
||||
hbm.key.toggleHUD=Toggle HUD
|
||||
hbm.key.toggleMagnet=Toggle Magnet
|
||||
hbm.key.trainInv=Train Inventory
|
||||
hbm.key.reload=Reload
|
||||
|
||||
@ -1465,8 +1468,8 @@ hbmfluid.death=Osmiridic Solution
|
||||
hbmfluid.deuterium=Deuterium
|
||||
hbmfluid.diesel=Diesel
|
||||
hbmfluid.diesel_crack=Cracked Diesel
|
||||
hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel
|
||||
hbmfluid.diesel_reform=High-Octane Diesel
|
||||
hbmfluid.diesel_crack_reform=High-Cetane Cracked Diesel
|
||||
hbmfluid.diesel_reform=High-Cetane Diesel
|
||||
hbmfluid.egg=Dissolved Egg
|
||||
hbmfluid.estradiol=Estradiol Solution
|
||||
hbmfluid.ethanol=Ethanol
|
||||
@ -5387,10 +5390,6 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil
|
||||
tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil
|
||||
tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil
|
||||
tile.hadron_coil_starmetal.name=Dense Starmetal Coil
|
||||
tile.hadron_cooler.name=Particle Accelerator Cooling Unit
|
||||
tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%%
|
||||
tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special
|
||||
tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%%
|
||||
tile.hadron_core.name=Particle Accelerator Core Component
|
||||
tile.hadron_diode.name=Schottky Particle Diode
|
||||
tile.hadron_plating.name=Particle Accelerator Plating
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 284 B |
Binary file not shown.
|
Before Width: | Height: | Size: 331 B |
Binary file not shown.
|
Before Width: | Height: | Size: 319 B |
Binary file not shown.
|
Before Width: | Height: | Size: 307 B |
Binary file not shown.
|
Before Width: | Height: | Size: 325 B |
Loading…
x
Reference in New Issue
Block a user