diff --git a/src/client/java/jesse/keeblarcraft/gui/FactionBlockScreen.java b/src/client/java/jesse/keeblarcraft/gui/FactionBlockScreen.java index 1fa86db..bf85663 100644 --- a/src/client/java/jesse/keeblarcraft/gui/FactionBlockScreen.java +++ b/src/client/java/jesse/keeblarcraft/gui/FactionBlockScreen.java @@ -14,7 +14,7 @@ import net.minecraft.util.Identifier; public class FactionBlockScreen extends HandledScreen { // This is a placeholder image until an actual one is drawn - private static final Identifier TEXTURE = new Identifier(Keeblarcraft.MOD_ID, "textures/gui/faction_base_block.png"); + private static final Identifier TEXTURE = new Identifier(Keeblarcraft.MOD_ID, "textures/gui/faction_block_menu.png"); public FactionBlockScreen(FactionBlockScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); @@ -32,6 +32,10 @@ public class FactionBlockScreen extends HandledScreen RenderSystem.setShader(GameRenderer::getPositionTexProgram); RenderSystem.setShaderColor(1f, 1f, 1f, 1f); RenderSystem.setShaderTexture(0, TEXTURE); + + this.backgroundHeight = 256; + this.backgroundWidth = 256; + int x = (width - backgroundWidth) / 2; int y = (height - backgroundHeight) / 2; diff --git a/src/main/java/jesse/keeblarcraft/AttributeMgr/AttributeNodes/FactionNodes/FactionFlight.java b/src/main/java/jesse/keeblarcraft/AttributeMgr/AttributeNodes/FactionNodes/FactionFlight.java index 3844796..fc309ad 100644 --- a/src/main/java/jesse/keeblarcraft/AttributeMgr/AttributeNodes/FactionNodes/FactionFlight.java +++ b/src/main/java/jesse/keeblarcraft/AttributeMgr/AttributeNodes/FactionNodes/FactionFlight.java @@ -9,6 +9,7 @@ import jesse.keeblarcraft.AttributeMgr.AttributeNodes.AbstractNode; import jesse.keeblarcraft.FactionMgr.Callbacks.PlayerCommandFlightCallback; import jesse.keeblarcraft.FactionMgr.Callbacks.PlayerEnteredBaseCallback; import jesse.keeblarcraft.FactionMgr.Callbacks.PlayerExitedBaseCallback; +import jesse.keeblarcraft.FactionMgr.Callbacks.PlayerInBaseCallback; import net.minecraft.entity.player.PlayerAbilities; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; @@ -20,6 +21,7 @@ public class FactionFlight extends AbstractNode { private ServerPlayerEntity player; private float SPEED_SCALAR = 40.0f; // The value to scale this correctly to CREATIVE flight is '20.0f' however faction flight is slower than creative intentionally private Boolean canFly = false; + private Boolean loginInBaseToggle = false; // Covers the unique case if player logs in inside the faction block border; in which case they need flight enabled! @Override public String GetNodeTitle() { @@ -87,6 +89,19 @@ public class FactionFlight extends AbstractNode { return ActionResult.SUCCESS; }); + PlayerInBaseCallback.EVENT.register((player, world) -> { + // Make sure player can fly while inside the border. We don't ever want to run this more than once! + System.out.println("INSIDE BORDER CHECK: canFly && !loginBase: " + canFly + " " + !loginInBaseToggle); + if (!canFly && !loginInBaseToggle) { + player.sendMessage(Text.of("Faction flight enabled")); + loginInBaseToggle = true; + canFly = true; + ServerPlayerEntity serverPlayer = (ServerPlayerEntity) player; + ToggleFlight(serverPlayer); + } + return ActionResult.SUCCESS; + }); + PlayerCommandFlightCallback.EVENT.register((player, world) -> { ServerPlayerEntity serverPlayer = (ServerPlayerEntity) player; Boolean isFlying = ToggleFlight(serverPlayer); diff --git a/src/main/java/jesse/keeblarcraft/CustomBlocks/BlockEntities/FactionBlockEntity.java b/src/main/java/jesse/keeblarcraft/CustomBlocks/BlockEntities/FactionBlockEntity.java index 4d8dbc1..c42ba72 100644 --- a/src/main/java/jesse/keeblarcraft/CustomBlocks/BlockEntities/FactionBlockEntity.java +++ b/src/main/java/jesse/keeblarcraft/CustomBlocks/BlockEntities/FactionBlockEntity.java @@ -113,7 +113,6 @@ public class FactionBlockEntity extends BlockEntity implements ExtendedScreenHan Boolean yBounds = player.getY() <= pos.getY() + 50 && player.getY() >= pos.getY() - 50; Boolean zBounds = player.getZ() <= pos.getZ() + 50 && player.getZ() >= pos.getZ() - 50; if (xBounds && yBounds && zBounds) { - System.out.println("PLAYER IN BOUNDS"); isNearBlock = true; } diff --git a/src/main/resources/assets/keeblarcraft/textures/gui/faction_base_block.png b/src/main/resources/assets/keeblarcraft/textures/gui/faction_base_block.png deleted file mode 100644 index 10d6377..0000000 Binary files a/src/main/resources/assets/keeblarcraft/textures/gui/faction_base_block.png and /dev/null differ diff --git a/src/main/resources/assets/keeblarcraft/textures/gui/faction_block_menu.png b/src/main/resources/assets/keeblarcraft/textures/gui/faction_block_menu.png new file mode 100644 index 0000000..edf13d8 Binary files /dev/null and b/src/main/resources/assets/keeblarcraft/textures/gui/faction_block_menu.png differ