From e7fe2d75af2c4733f0b7b672ee7821ee214bd2a6 Mon Sep 17 00:00:00 2001 From: sisby-folk Date: Mon, 13 Jan 2025 19:20:55 +1100 Subject: [PATCH] add point descriptions --- gradle.properties | 2 +- src/main/java/folk/sisby/surveyor/SurveyorCommands.java | 2 +- .../sisby/surveyor/client/SurveyorClientCommands.java | 2 +- .../sisby/surveyor/landmark/SimplePointLandmark.java | 9 +++++---- .../folk/sisby/surveyor/landmark/VariableLandmark.java | 6 ++++++ 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index b90e60a..4b83405 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ authors=Sisby folk contributors=Ampflower, falkreon, jaskarth, Garden System license=LGPL-3.0-or-later # Mod Version -baseVersion=0.6.25 +baseVersion=0.6.26 # Branch Metadata branch=1.20 tagBranch=1.20 diff --git a/src/main/java/folk/sisby/surveyor/SurveyorCommands.java b/src/main/java/folk/sisby/surveyor/SurveyorCommands.java index 922311c..ac49bda 100644 --- a/src/main/java/folk/sisby/surveyor/SurveyorCommands.java +++ b/src/main/java/folk/sisby/surveyor/SurveyorCommands.java @@ -290,7 +290,7 @@ private static int addLandmark(WorldSummary summary, ServerPlayerEntity player, feedback.accept(Text.literal("[Surveyor] ").formatted(Formatting.DARK_RED).append(Text.literal("A landmark exists of that type and position!").formatted(Formatting.YELLOW))); return 0; } - summary.landmarks().put(world, new SimplePointLandmark(pos, global ? null : Surveyor.getUuid(player), color, Text.of(name), new Identifier(""))); + summary.landmarks().put(world, new SimplePointLandmark(pos, global ? null : Surveyor.getUuid(player), color, Text.of(name.contains("\\n") ? name.substring(0, name.indexOf("\\n")) : name), name.contains("\\n") ? Text.of(name.substring(name.indexOf("\\n") + 2)) : null, null)); feedback.accept(Text.literal("[Surveyor] ").formatted(Formatting.DARK_RED).append(Text.literal("%s added successfully!".formatted(global ? "Landmark" : "Waypoint")).formatted(Formatting.GREEN))); return 1; } diff --git a/src/main/java/folk/sisby/surveyor/client/SurveyorClientCommands.java b/src/main/java/folk/sisby/surveyor/client/SurveyorClientCommands.java index bf7f80e..0b04b1b 100644 --- a/src/main/java/folk/sisby/surveyor/client/SurveyorClientCommands.java +++ b/src/main/java/folk/sisby/surveyor/client/SurveyorClientCommands.java @@ -204,7 +204,7 @@ private static int addLandmark(WorldSummary summary, ClientWorld world, Consumer feedback.accept(Text.literal("[Surveyor] ").formatted(Formatting.DARK_RED).append(Text.literal("A landmark exists of that type and position!").formatted(Formatting.YELLOW))); return 0; } - summary.landmarks().put(world, new SimplePointLandmark(pos, global ? null : SurveyorClient.getClientUuid(), color, Text.of(name), new Identifier(""))); + summary.landmarks().put(world, new SimplePointLandmark(pos, global ? null : SurveyorClient.getClientUuid(), color, Text.of(name.contains("\\n") ? name.substring(0, name.indexOf("\\n")) : name), name.contains("\\n") ? Text.of(name.substring(name.indexOf("\\n") + 2)) : null, null)); feedback.accept(Text.literal("[Surveyor] ").formatted(Formatting.DARK_RED).append(Text.literal("%s added successfully!".formatted(global ? "Landmark" : "Waypoint")).formatted(Formatting.GREEN))); return 1; } diff --git a/src/main/java/folk/sisby/surveyor/landmark/SimplePointLandmark.java b/src/main/java/folk/sisby/surveyor/landmark/SimplePointLandmark.java index 208f11e..4c8e442 100644 --- a/src/main/java/folk/sisby/surveyor/landmark/SimplePointLandmark.java +++ b/src/main/java/folk/sisby/surveyor/landmark/SimplePointLandmark.java @@ -12,19 +12,20 @@ import java.util.Optional; import java.util.UUID; -public record SimplePointLandmark(BlockPos pos, Optional optionalOwner, Optional optionalColor, Optional optionalName, Optional optionalTexture) implements VariableLandmark { +public record SimplePointLandmark(BlockPos pos, Optional optionalOwner, Optional optionalColor, Optional optionalName, Optional optionalDescription, Optional optionalTexture) implements VariableLandmark { public static final LandmarkType TYPE = new SimpleLandmarkType<>( new Identifier(Surveyor.ID, "point"), pos -> RecordCodecBuilder.create(instance -> instance.group( Uuids.CODEC.optionalFieldOf("owner").forGetter(VariableLandmark::optionalOwner), DyeColor.CODEC.optionalFieldOf("color").orElse(null).forGetter(VariableLandmark::optionalColor), Codecs.TEXT.optionalFieldOf("name").orElse(null).forGetter(VariableLandmark::optionalName), + Codecs.TEXT.optionalFieldOf("description").orElse(null).forGetter(VariableLandmark::optionalDescription), Identifier.CODEC.optionalFieldOf("texture").orElse(null).forGetter(VariableLandmark::optionalTexture) - ).apply(instance, (owner, color, name, texture) -> new SimplePointLandmark(pos, owner, color, name, texture))) + ).apply(instance, (owner, color, name, description, texture) -> new SimplePointLandmark(pos, owner, color, name, description, texture))) ); - public SimplePointLandmark(BlockPos pos, UUID owner, DyeColor color, Text name, Identifier texture) { - this(pos, Optional.ofNullable(owner), Optional.ofNullable(color), Optional.ofNullable(name), Optional.ofNullable(texture)); + public SimplePointLandmark(BlockPos pos, UUID owner, DyeColor color, Text name, Text description, Identifier texture) { + this(pos, Optional.ofNullable(owner), Optional.ofNullable(color), Optional.ofNullable(name), Optional.ofNullable(description), Optional.ofNullable(texture)); } @Override diff --git a/src/main/java/folk/sisby/surveyor/landmark/VariableLandmark.java b/src/main/java/folk/sisby/surveyor/landmark/VariableLandmark.java index e0ce97d..b83a23c 100644 --- a/src/main/java/folk/sisby/surveyor/landmark/VariableLandmark.java +++ b/src/main/java/folk/sisby/surveyor/landmark/VariableLandmark.java @@ -27,6 +27,12 @@ public interface VariableLandmark> extends Landmar Optional optionalName(); + default @Nullable Text description() { + return optionalDescription().orElse(null); + } + + Optional optionalDescription(); + default @Nullable Identifier texture() { return optionalTexture().orElse(null); }