Minor improvements to the server side CUI

This commit is contained in:
Matthew Miller 2018-12-26 18:15:17 +10:00
parent 4cc8e9a1c0
commit a88f6b8430
2 changed files with 14 additions and 12 deletions

View File

@ -657,23 +657,25 @@ public class LocalSession {
return; // If it's not enabled, ignore this. return; // If it's not enabled, ignore this.
} }
// Remove the old block.
if (cuiTemporaryBlock != null) {
player.sendFakeBlock(cuiTemporaryBlock, null);
cuiTemporaryBlock = null;
}
BaseBlock block = ServerCUIHandler.createStructureBlock(player); BaseBlock block = ServerCUIHandler.createStructureBlock(player);
if (block != null) { if (block != null) {
// If it's null, we don't need to do anything. The old was already removed. // If it's null, we don't need to do anything. The old was already removed.
Map<String, Tag> tags = block.getNbtData().getValue(); Map<String, Tag> tags = block.getNbtData().getValue();
cuiTemporaryBlock = BlockVector3.at( BlockVector3 tempCuiTemporaryBlock = BlockVector3.at(
((IntTag) tags.get("x")).getValue(), ((IntTag) tags.get("x")).getValue(),
((IntTag) tags.get("y")).getValue(), ((IntTag) tags.get("y")).getValue(),
((IntTag) tags.get("z")).getValue() ((IntTag) tags.get("z")).getValue()
); );
if (cuiTemporaryBlock != null && !tempCuiTemporaryBlock.equals(cuiTemporaryBlock)) {
// Update the existing block if it's the same location
player.sendFakeBlock(cuiTemporaryBlock, null);
}
cuiTemporaryBlock = tempCuiTemporaryBlock;
player.sendFakeBlock(cuiTemporaryBlock, block); player.sendFakeBlock(cuiTemporaryBlock, block);
} else if (cuiTemporaryBlock != null) {
// Remove the old block
player.sendFakeBlock(cuiTemporaryBlock, null);
cuiTemporaryBlock = null;
} }
} }
@ -713,10 +715,8 @@ public class LocalSession {
public void dispatchCUISelection(Actor actor) { public void dispatchCUISelection(Actor actor) {
checkNotNull(actor); checkNotNull(actor);
if (!hasCUISupport) { if (!hasCUISupport && useServerCUI) {
if (useServerCUI) { updateServerCUI(actor);
updateServerCUI(actor);
}
return; return;
} }

View File

@ -228,6 +228,8 @@ public class CuboidRegionSelector implements RegionSelector, CUIRegion {
public void clear() { public void clear() {
position1 = null; position1 = null;
position2 = null; position2 = null;
region.setPos1(BlockVector3.ZERO);
region.setPos2(BlockVector3.ZERO);
} }
@Override @Override