Minor improvements to the server side CUI

This commit is contained in:
Matthew Miller 2018-12-26 18:15:17 +10:00 committed by IronApollo
parent 22f8372b89
commit 1d87642b52
2 changed files with 18 additions and 8 deletions

View File

@ -1144,23 +1144,25 @@ public class LocalSession implements TextureHolder {
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;
} }
} }
@ -1200,6 +1202,12 @@ public class LocalSession implements TextureHolder {
*/ */
public void dispatchCUISelection(Actor actor) { public void dispatchCUISelection(Actor actor) {
checkNotNull(actor); checkNotNull(actor);
if (!hasCUISupport && useServerCUI) {
updateServerCUI(actor);
return;
}
if (selector instanceof CUIRegion) { if (selector instanceof CUIRegion) {
CUIRegion tempSel = (CUIRegion) selector; CUIRegion tempSel = (CUIRegion) selector;

View File

@ -249,6 +249,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