diff --git a/build.gradle b/build.gradle index 9696a6e..0a8161c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "1.0" +version = "1.0.1" group = "nl.requios.effortlessbuilding" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "effortlessbuilding" diff --git a/src/main/java/nl/requios/effortlessbuilding/BuildModifiers.java b/src/main/java/nl/requios/effortlessbuilding/BuildModifiers.java index 41d4df8..2e778bb 100644 --- a/src/main/java/nl/requios/effortlessbuilding/BuildModifiers.java +++ b/src/main/java/nl/requios/effortlessbuilding/BuildModifiers.java @@ -101,18 +101,27 @@ public class BuildModifiers { } public static void onBlockBroken(BlockEvent.BreakEvent event) { - if (event.getWorld().isRemote) return; + World world = event.getWorld(); + BlockPos pos = event.getPos(); + + if (world.isRemote) return; BuildSettingsManager.BuildSettings buildSettings = BuildSettingsManager.getBuildSettings(event.getPlayer()); //Only use own break event if anything is enabled - if (isEnabled(buildSettings, event.getPos())) { + if (isEnabled(buildSettings, pos)) { //get coordinates - List coordinates = findCoordinates(event.getPlayer(), event.getPos()); + List coordinates = findCoordinates(event.getPlayer(), pos); + + //If the player is going to instabreak grass or a plant, only break other instabreaking things + boolean onlyInstaBreaking = world.getBlockState(pos).getBlockHardness( + world, pos) == 0f; //break all those blocks for (BlockPos coordinate : coordinates) { - if (event.getWorld().isBlockLoaded(coordinate, false)) { - SurvivalHelper.breakBlock(event.getWorld(), event.getPlayer(), coordinate); + if (world.isBlockLoaded(coordinate, false)) { + if (!onlyInstaBreaking || world.getBlockState(coordinate).getBlockHardness(world, coordinate) == 0f) { + SurvivalHelper.breakBlock(world, event.getPlayer(), coordinate); + } } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/BuildSettingsManager.java b/src/main/java/nl/requios/effortlessbuilding/BuildSettingsManager.java index e8d52ee..586bae7 100644 --- a/src/main/java/nl/requios/effortlessbuilding/BuildSettingsManager.java +++ b/src/main/java/nl/requios/effortlessbuilding/BuildSettingsManager.java @@ -104,6 +104,7 @@ public class BuildSettingsManager { public BuildSettings() { mirrorSettings = new Mirror.MirrorSettings(); arraySettings = new Array.ArraySettings(); + radialMirrorSettings = new RadialMirror.RadialMirrorSettings(); } public BuildSettings(Mirror.MirrorSettings mirrorSettings, Array.ArraySettings arraySettings, @@ -116,26 +117,32 @@ public class BuildSettingsManager { } public Mirror.MirrorSettings getMirrorSettings() { - return mirrorSettings; + if (this.mirrorSettings == null) this.mirrorSettings = new Mirror.MirrorSettings(); + return this.mirrorSettings; } public void setMirrorSettings(Mirror.MirrorSettings mirrorSettings) { + if (mirrorSettings == null) return; this.mirrorSettings = mirrorSettings; } public Array.ArraySettings getArraySettings() { - return arraySettings; + if (this.arraySettings == null) this.arraySettings = new Array.ArraySettings(); + return this.arraySettings; } public void setArraySettings(Array.ArraySettings arraySettings) { + if (arraySettings == null) return; this.arraySettings = arraySettings; } public RadialMirror.RadialMirrorSettings getRadialMirrorSettings() { - return radialMirrorSettings; + if (this.radialMirrorSettings == null) this.radialMirrorSettings = new RadialMirror.RadialMirrorSettings(); + return this.radialMirrorSettings; } public void setRadialMirrorSettings(RadialMirror.RadialMirrorSettings radialMirrorSettings) { + if (radialMirrorSettings == null) return; this.radialMirrorSettings = radialMirrorSettings; } diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 462ada1..0ded25a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -36,7 +36,7 @@ public class EffortlessBuilding { public static final String MODID = "effortlessbuilding"; public static final String NAME = "Effortless Building"; - public static final String VERSION = "1.0"; + public static final String VERSION = "1.0.1"; @Mod.Instance(EffortlessBuilding.MODID) public static EffortlessBuilding instance; diff --git a/src/main/java/nl/requios/effortlessbuilding/EventHandler.java b/src/main/java/nl/requios/effortlessbuilding/EventHandler.java index 951182f..54f68f4 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EventHandler.java +++ b/src/main/java/nl/requios/effortlessbuilding/EventHandler.java @@ -88,6 +88,7 @@ public class EventHandler //EffortlessBuilding.log(player, String.valueOf(event.getNewSpeed())); float originalBlockHardness = event.getState().getBlockHardness(world, pos); + if (originalBlockHardness < 0) return; //Dont break bedrock float totalBlockHardness = 0; //get coordinates List coordinates = BuildModifiers.findCoordinates(player, pos); diff --git a/src/main/java/nl/requios/effortlessbuilding/helper/SurvivalHelper.java b/src/main/java/nl/requios/effortlessbuilding/helper/SurvivalHelper.java index 1723181..d91ea69 100644 --- a/src/main/java/nl/requios/effortlessbuilding/helper/SurvivalHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/helper/SurvivalHelper.java @@ -123,6 +123,12 @@ public class SurvivalHelper { { IBlockState state = world.getBlockState(pos); state = state.getBlock().getActualState(state, world, pos); + + //Dont break bedrock + if (state.getBlockHardness((World) world, pos) < 0) { + return false; + } + if (state.getMaterial().isToolNotRequired()) { return true;