diff --git a/src/main/java/com/reider745/event/EventListener.java b/src/main/java/com/reider745/event/EventListener.java index ad0c3111..2e90c78e 100644 --- a/src/main/java/com/reider745/event/EventListener.java +++ b/src/main/java/com/reider745/event/EventListener.java @@ -85,9 +85,13 @@ public class EventListener implements Listener { return; } - final Vector3 pos = event.getTouchVector(); final Block block = event.getBlock(); final Player player = event.getPlayer(); + final Vector3 pos = player.getDirectionVector(); + + pos.x = Math.abs(pos.x) + block.x; + pos.y = Math.abs(pos.y) + block.y; + pos.z = Math.abs(pos.z) + block.z; if (event.getAction() == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) { consumeEvent(event, diff --git a/src/main/resources/innercore/coreengine/core-engine.dev.js b/src/main/resources/innercore/coreengine/core-engine.dev.js index ae61f0e6..4d5c8038 100755 --- a/src/main/resources/innercore/coreengine/core-engine.dev.js +++ b/src/main/resources/innercore/coreengine/core-engine.dev.js @@ -683,6 +683,7 @@ var TileEntityBasePrototype = { _runInit: function() { Saver.registerObject(this, this.saverId); this.blockSource = BlockSource.getDefaultForDimension(this.dimension); + if (!this.blockSource) { this.isLoaded = false; return false; @@ -827,6 +828,11 @@ var TileEntity = { Prototype.saverId = Saver.registerObjectSaver(saverName, { read: function(obj) { + if(TileEntity.getTileEntity(obj.coords.x, obj.coords.y, obj.coords.z, BlockSource.getDefaultForDimension(obj.coords.d))){ + print("Duplicate TileEntity detected: "+obj.coords.x+":"+obj.coords.y+":"+obj.coords.z); + return; + } + if (!obj || !obj.coords) { return; } @@ -1631,7 +1637,7 @@ var BlockRegistry = { GameAPI.prevent(); region.setBlock(coords.relative.x, coords.relative.y, coords.relative.z, idFlowing, 0); dispenser.setSlot(slot, emptyId, 1, 0, null); - region.playSound(coords.relative.x + .5, coords.relative.y + .5, coords.relative.z + .5, bucketData.emptySound || "bucket.empty_water", 1, 1); + WorldAPI.playSound(coords.relative.x + .5, coords.relative.y + .5, coords.relative.z + .5, bucketData.emptySound || "bucket.empty_water", 1, 1); } }); @@ -1646,7 +1652,7 @@ var BlockRegistry = { if (liquid && block.data === 0) { GameAPI.prevent(); region.setBlock(coords.relative.x, coords.relative.y, coords.relative.z, 0, 0); - region.playSound(coords.relative.x + .5, coords.relative.y + .5, coords.relative.z + .5, bucketData.emptySound || "bucket.empty_water", 1); + WorldAPI.playSound(coords.relative.x + .5, coords.relative.y + .5, coords.relative.z + .5, bucketData.emptySound || "bucket.empty_water", 1); dispenser.setSlot(slot, item.id, item.count - 1, item.data, item.extra); for (var i = 0; i < 9; i++) { @@ -2568,7 +2574,7 @@ var ItemRegistry = { if (!noModCallback) { var blockSource = BlockSource.getDefaultForActor(entity); var block = blockSource ? blockSource.getBlock(coords.x, coords.y, coords.z) - : WorldAPI.getBlock(coords.x, coords.y, coords.z); + : WorldAPI.getBlock(coords.x, coords.y, coords.z); Callback.invokeCallback("ItemUse", coords, item, block, false, entity); } if (noModCallback || !MCSystem.isDefaultPrevented()) { @@ -6033,8 +6039,8 @@ var EntityAPI = { setTarget: function(ent, target) { return Entity.setTarget(ent, target); }, - getMobile: function(ent) { - return !Entity.isImmobile(ent); + getMobile: function(ent, mobile) { + Entity.isImmobile(ent); }, setMobile: function(ent, mobile) { Entity.setImmobile(ent, !mobile); @@ -6437,7 +6443,7 @@ Callback.addCallback("ItemUse", function(coords, item, block, isExternal, player Entity.setCarriedItem(player, 0, 0, 0); } } - blockSource.playSound(coords.x, coords.y, coords.z, "dig.stone", 1, 0.8); + WorldAPI.playSound(coords.x, coords.y, coords.z, "dig.stone", 1, 0.8); preventDefault(); return; } @@ -6451,7 +6457,7 @@ Callback.addCallback("ItemUse", function(coords, item, block, isExternal, player Entity.setCarriedItem(player, 0, 0, 0); } } - blockSource.playSound(coords.x, coords.y, coords.z, "dig.stone", 1, 0.8); + WorldAPI.playSound(coords.x, coords.y, coords.z, "dig.stone", 1, 0.8); preventDefault(); } }