Fix randomizer bag consuming an extra block in some cases.
This commit is contained in:
@@ -200,7 +200,7 @@ public class EventHandler
|
||||
ModifierSettingsManager.handleNewPlayer(player);
|
||||
ModeSettingsManager.handleNewPlayer(player);
|
||||
|
||||
UndoRedo.clear(event.player);
|
||||
UndoRedo.clear(player);
|
||||
EffortlessBuilding.packetHandler.sendTo(new ClearUndoMessage(), (EntityPlayerMP) player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import java.util.*;
|
||||
|
||||
public class BuildModifiers {
|
||||
|
||||
|
||||
//Called from BuildModes
|
||||
public static void onBlockPlaced(EntityPlayer player, List<BlockPos> startCoordinates, EnumFacing sideHit, Vec3d hitVec, boolean placeStartPos) {
|
||||
World world = player.world;
|
||||
@@ -245,6 +244,16 @@ public class BuildModifiers {
|
||||
if (coordinates1 == null && coordinates2 == null) return true;
|
||||
if (coordinates1 == null || coordinates2 == null) return false;
|
||||
|
||||
return coordinates1.equals(coordinates2);
|
||||
//Check count, not actual values
|
||||
if (coordinates1.size() == coordinates2.size()){
|
||||
if (coordinates1.size() == 1){
|
||||
return coordinates1.get(0).equals(coordinates2.get(0));
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
// return coordinates1.equals(coordinates2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,16 +118,13 @@ public class RandomizerBagContainer extends Container {
|
||||
/**
|
||||
* Callback for when the crafting gui is closed.
|
||||
*/
|
||||
// @Override
|
||||
// public void onContainerClosed(EntityPlayer player)
|
||||
// {
|
||||
// if(player.inventory.getItemStack() != null)
|
||||
// {
|
||||
// player.entityDropItem(player.inventory.getItemStack(), 0.5f);
|
||||
// }
|
||||
// if(!player.world.isRemote)
|
||||
// {
|
||||
// detectAndSendChanges();
|
||||
// }
|
||||
// }
|
||||
@Override
|
||||
public void onContainerClosed(EntityPlayer player)
|
||||
{
|
||||
super.onContainerClosed(player);
|
||||
if(!player.world.isRemote)
|
||||
{
|
||||
detectAndSendChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import org.lwjgl.input.Mouse;
|
||||
|
||||
@@ -20,6 +20,9 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||
import nl.requios.effortlessbuilding.buildmode.BuildModes;
|
||||
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;
|
||||
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
||||
import nl.requios.effortlessbuilding.capability.ItemHandlerCapabilityProvider;
|
||||
import nl.requios.effortlessbuilding.helper.SurvivalHelper;
|
||||
|
||||
@@ -52,6 +55,14 @@ public class ItemRandomizerBag extends Item {
|
||||
player.openGui(EffortlessBuilding.instance, EffortlessBuilding.RANDOMIZER_BAG_GUI, world, 0, 0, 0);
|
||||
} else {
|
||||
if (world.isRemote) return EnumActionResult.SUCCESS;
|
||||
|
||||
//Only place manually if in normal vanilla mode
|
||||
BuildModes.BuildModeEnum buildMode = ModeSettingsManager.getModeSettings(player).getBuildMode();
|
||||
ModifierSettingsManager.ModifierSettings modifierSettings = ModifierSettingsManager.getModifierSettings(player);
|
||||
if (buildMode != BuildModes.BuildModeEnum.NORMAL || modifierSettings.doQuickReplace()) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
||||
//Use item
|
||||
//Get bag inventory
|
||||
ItemStack bag = player.getHeldItem(hand);
|
||||
|
||||
@@ -352,7 +352,8 @@ public class ClientProxy implements IProxy {
|
||||
}
|
||||
|
||||
public static void openModifierSettings() {
|
||||
EntityPlayerSP player = Minecraft.getMinecraft().player;
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
EntityPlayerSP player = mc.player;
|
||||
|
||||
RadialMenu.instance.setVisibility(0f);
|
||||
|
||||
@@ -360,8 +361,8 @@ public class ClientProxy implements IProxy {
|
||||
if (ReachHelper.getMaxReach(player) == 0) {
|
||||
EffortlessBuilding.log(player, "Build modifiers are disabled until your reach has increased. Increase your reach with craftable reach upgrades.");
|
||||
} else {
|
||||
if (Minecraft.getMinecraft().currentScreen == null) {
|
||||
Minecraft.getMinecraft().displayGuiScreen(new ModifierSettingsGui());
|
||||
if (mc.currentScreen == null) {
|
||||
mc.displayGuiScreen(new ModifierSettingsGui());
|
||||
} else {
|
||||
player.closeScreen();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user