From 14aba981b22726df2d646ee2ad1dbb1c12384aa2 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 7 Jun 2014 19:23:31 -0500 Subject: [PATCH 1/3] Tweaked Energy Flow Code for Network Acceptor, should be more what I'm looking for. --- block/grindstone/BlockGrinder.java | 3 ++- block/misc/BlockVibrationChamber.java | 1 + tile/networking/TileEnergyAcceptor.java | 10 ++++------ tile/powersink/IC2.java | 1 - tile/powersink/MinecraftJoules6.java | 4 ++++ 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/block/grindstone/BlockGrinder.java b/block/grindstone/BlockGrinder.java index 5b61ea27..f75cf057 100644 --- a/block/grindstone/BlockGrinder.java +++ b/block/grindstone/BlockGrinder.java @@ -19,6 +19,7 @@ public class BlockGrinder extends AEBaseBlock super( BlockGrinder.class, Material.rock ); setfeature( EnumSet.of( AEFeature.GrindStone ) ); setTileEntiy( TileGrinder.class ); + setHardness( 3.2F ); } @Override @@ -27,7 +28,7 @@ public class BlockGrinder extends AEBaseBlock TileGrinder tg = getTileEntity( w, x, y, z ); if ( tg != null && !p.isSneaking() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation(side),GuiBridge.GUI_GRINDER ); + Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_GRINDER ); return true; } return false; diff --git a/block/misc/BlockVibrationChamber.java b/block/misc/BlockVibrationChamber.java index cb0f984a..4ae84a37 100644 --- a/block/misc/BlockVibrationChamber.java +++ b/block/misc/BlockVibrationChamber.java @@ -25,6 +25,7 @@ public class BlockVibrationChamber extends AEBaseBlock super( BlockVibrationChamber.class, Material.iron ); setfeature( EnumSet.of( AEFeature.PowerGen ) ); setTileEntiy( TileVibrationChamber.class ); + setHardness( 4.2F ); } @Override diff --git a/tile/networking/TileEnergyAcceptor.java b/tile/networking/TileEnergyAcceptor.java index 29a262fc..164c5e4e 100644 --- a/tile/networking/TileEnergyAcceptor.java +++ b/tile/networking/TileEnergyAcceptor.java @@ -77,12 +77,10 @@ public class TileEnergyAcceptor extends AENetworkPowerTile try { IEnergyGrid grid = gridProxy.getEnergy(); - double overFlow = grid.injectPower( newPower, Actionable.SIMULATE ); - - if ( mode == Actionable.MODULATE ) - grid.injectPower( Math.max( 0.0, newPower - overFlow ), Actionable.MODULATE ); - - return super.funnelPowerIntoStorage( overFlow, mode ); + double leftOver = grid.injectPower( newPower, mode ); + if ( mode == Actionable.SIMULATE ) + return leftOver; + return 0.0; } catch (GridAccessException e) { diff --git a/tile/powersink/IC2.java b/tile/powersink/IC2.java index 9f92355a..fd8f9e99 100644 --- a/tile/powersink/IC2.java +++ b/tile/powersink/IC2.java @@ -73,7 +73,6 @@ public abstract class IC2 extends MinecraftJoules6 implements IEnergySink super.setPowerSides( sides ); removeFromENet(); addToENet(); - } final private void addToENet() diff --git a/tile/powersink/MinecraftJoules6.java b/tile/powersink/MinecraftJoules6.java index bab841c3..3964b1e6 100644 --- a/tile/powersink/MinecraftJoules6.java +++ b/tile/powersink/MinecraftJoules6.java @@ -30,6 +30,10 @@ public abstract class MinecraftJoules6 extends MinecraftJoules5 implements IBatt @Method(iname = "MJ6") public double addEnergy(double amount) { + double demand = getExternalPowerDemand( PowerUnits.MJ, Double.MAX_VALUE ); + if ( amount > demand ) + amount = demand; + double overflow = injectExternalPower( PowerUnits.MJ, amount ); return amount - overflow; } From 50541cebe638e67ae8fb2cef01641a3a2d57b2f0 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 7 Jun 2014 19:51:08 -0500 Subject: [PATCH 2/3] Meteorites can no generate much taller craters and expand their view of the world as blocks are destroyed so they can keep enlarging up to the max height limit. --- helpers/MeteoritePlacer.java | 38 +++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/helpers/MeteoritePlacer.java b/helpers/MeteoritePlacer.java index 943600f9..7bd6a241 100644 --- a/helpers/MeteoritePlacer.java +++ b/helpers/MeteoritePlacer.java @@ -274,9 +274,18 @@ public class MeteoritePlacer { boolean lava = Math.random() > 0.9; - for (int i = x - 30; i < x + 30; i++) - for (int j = y - 5; j < y + 40; j++) - for (int k = z - 30; k < z + 30; k++) + int maxY = Math.min( y + 20, 255 ); + int minX = x - 40; + int maxX = x + 40; + int minZ = z - 40; + int maxZ = z + 40; + + for (int j = y - 5; j < maxY; j++) + { + boolean changed = false; + + for (int i = minX; i < maxX; i++) + for (int k = minZ; k < maxZ; k++) { double dx = i - x; double dz = k - z; @@ -292,10 +301,22 @@ public class MeteoritePlacer put( w, i, j, k, Blocks.lava ); } else - put( w, i, j, k, Platform.air ); + changed = put( w, i, j, k, Platform.air ) || changed; } } + if ( changed && j > maxY - 5 ) + { + maxY = Math.min( maxY + 5, 255 ); + + minX -= 7; + maxX += 7; + + minZ -= 7; + maxZ += 7; + } + } + for (Object o : w.getEntitiesWithinAABB( EntityItem.class, AxisAlignedBB.getBoundingBox( x - 30, y - 5, z - 30, x + 30, y + 30, z + 30 ) )) { Entity e = (Entity) o; @@ -476,12 +497,15 @@ public class MeteoritePlacer } } - private void put(World w, int i, int j, int k, Block blk) + private boolean put(World w, int i, int j, int k, Block blk) { - if ( w.getBlock( i, j, k ) == Blocks.bedrock ) - return; + Block original = w.getBlock( i, j, k ); + + if ( original == Blocks.bedrock || original == blk ) + return false; w.setBlock( i, j, k, blk ); + return true; } private void put(World w, int i, int j, int k, Block blk, int meta) From 009417ca4f70f2d9c854771d2a5df5e9cec28fc7 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 7 Jun 2014 20:20:23 -0500 Subject: [PATCH 3/3] Adjusted Block Hardness. Test Tools with getHarvestLevel --- block/AEBaseBlock.java | 3 ++- block/solids/BlockSkyStone.java | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/block/AEBaseBlock.java b/block/AEBaseBlock.java index fc6c1d93..b271f772 100644 --- a/block/AEBaseBlock.java +++ b/block/AEBaseBlock.java @@ -187,8 +187,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature this( c, mat, null ); setLightOpacity( 15 ); setLightLevel( 0 ); - setHardness( 1.2F ); + setHardness( 2.2F ); setTileProvider( false ); + setHarvestLevel( "pickaxe", 0 ); } // update Block value. diff --git a/block/solids/BlockSkyStone.java b/block/solids/BlockSkyStone.java index eeee3106..1da657dd 100644 --- a/block/solids/BlockSkyStone.java +++ b/block/solids/BlockSkyStone.java @@ -46,8 +46,17 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock @SubscribeEvent public void breakFaster(PlayerEvent.BreakSpeed Ev) { - if ( Ev.block == this && (Ev.originalSpeed > 7 || Ev.metadata > 0) ) - Ev.newSpeed /= 0.1; + if ( Ev.block == this && Ev.entityPlayer != null ) + { + ItemStack is = Ev.entityPlayer.inventory.getCurrentItem(); + int level = -1; + + if ( is != null ) + level = is.getItem().getHarvestLevel( is, "pickaxe" ); + + if ( Ev.metadata > 0 || level >= 3 || Ev.originalSpeed > 7.0 ) + Ev.newSpeed /= 0.1; + } } public BlockSkyStone() {