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.
}
// Remove the old block.
if (cuiTemporaryBlock != null) {
player.sendFakeBlock(cuiTemporaryBlock, null);
cuiTemporaryBlock = null;
}
BaseBlock block = ServerCUIHandler.createStructureBlock(player);
if (block != null) {
// If it's null, we don't need to do anything. The old was already removed.
Map<String, Tag> tags = block.getNbtData().getValue();
cuiTemporaryBlock = BlockVector3.at(
BlockVector3 tempCuiTemporaryBlock = BlockVector3.at(
((IntTag) tags.get("x")).getValue(),
((IntTag) tags.get("y")).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);
} 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) {
checkNotNull(actor);
if (!hasCUISupport && useServerCUI) {
updateServerCUI(actor);
return;
}
if (selector instanceof CUIRegion) {
CUIRegion tempSel = (CUIRegion) selector;

View File

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