diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt index 874954040..bdcada325 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt @@ -7,7 +7,6 @@ import org.gradle.kotlin.dsl.repositories fun Project.configureDependencies() { repositories { - maven { url = uri("https://papermc.io/repo/repository/maven-public/") } maven { url = uri("http://maven.enginehub.org/repo/") } maven { url = uri("https://repo.codemc.org/repository/maven-public") } maven { url = uri("https://papermc.io/repo/repository/maven-public/") } diff --git a/common/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java b/common/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java index 630fa8774..99d768482 100644 --- a/common/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java +++ b/common/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java @@ -33,9 +33,9 @@ public class UserDefinedBiome implements TerraBiome { } /** - * Gets the Vanilla biome to represent the custom biome. + * Gets the Vanilla biomes to represent the custom biome. * - * @return TerraBiome - The Vanilla biome. + * @return Collection of biomes to represent the custom biome. */ @Override public ProbabilityCollection getVanillaBiomes() { diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/NormalizerLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/NormalizerLoader.java deleted file mode 100644 index 9eb17c744..000000000 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/NormalizerLoader.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.dfsek.terra.config.loaders.config.sampler; - -public class NormalizerLoader { -} diff --git a/common/src/main/java/com/dfsek/terra/config/templates/CarverTemplate.java b/common/src/main/java/com/dfsek/terra/config/templates/CarverTemplate.java new file mode 100644 index 000000000..4f9bf1b12 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/templates/CarverTemplate.java @@ -0,0 +1,205 @@ +package com.dfsek.terra.config.templates; + +import com.dfsek.tectonic.annotations.Abstractable; +import com.dfsek.tectonic.annotations.Default; +import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.math.Range; +import com.dfsek.terra.api.platform.block.MaterialData; +import com.dfsek.terra.carving.CarverPalette; +import com.dfsek.terra.util.MaterialSet; + +import java.util.HashMap; +import java.util.Map; + +@SuppressWarnings({"unused", "FieldMayBeFinal"}) +public class CarverTemplate extends AbstractableTemplate { + @Value("id") + private String id; + + @Value("step") + @Abstractable + @Default + private int step = 2; + + @Value("recalculate-magnitude") + @Default + @Abstractable + private double recaclulateMagnitude = 4; + + @Value("recalculate-direction") + @Abstractable + @Default + private Range recalc = new Range(8, 10); + + @Value("length") + @Abstractable + private Range length; + + @Value("start.x") + @Abstractable + private double startX; + + @Value("start.y") + @Abstractable + private double startY; + + @Value("start.z") + @Abstractable + private double startZ; + + @Value("start.radius.x") + @Abstractable + private String radMX; + + @Value("start.radius.y") + @Abstractable + private String radMY; + + @Value("start.radius.z") + @Abstractable + private String radMZ; + + @Value("start.height") + @Abstractable + private Range height; + + @Value("cut.bottom") + @Abstractable + @Default + private int cutBottom = 0; + + @Value("cut.top") + @Abstractable + @Default + private int cutTop = 0; + + @Value("mutate.x") + @Abstractable + private double mutateX; + + @Value("mutate.y") + @Abstractable + private double mutateY; + + @Value("mutate.z") + @Abstractable + private double mutateZ; + + @Value("palette.top") + @Abstractable + private CarverPalette top; + + @Value("palette.bottom") + @Abstractable + private CarverPalette bottom; + + @Value("palette.outer") + @Abstractable + private CarverPalette outer; + + @Value("palette.inner") + @Abstractable + private CarverPalette inner; + + @Value("shift") + @Abstractable + @Default + private Map shift = new HashMap<>(); + + @Value("update") + @Abstractable + @Default + private MaterialSet update = new MaterialSet(); + + public String getID() { + return id; + } + + public int getStep() { + return step; + } + + public Range getLength() { + return length; + } + + public double getStartX() { + return startX; + } + + public double getStartY() { + return startY; + } + + public double getStartZ() { + return startZ; + } + + public String getRadMX() { + return radMX; + } + + public String getRadMY() { + return radMY; + } + + public String getRadMZ() { + return radMZ; + } + + public Range getHeight() { + return height; + } + + public int getCutBottom() { + return cutBottom; + } + + public int getCutTop() { + return cutTop; + } + + public double getMutateX() { + return mutateX; + } + + public double getMutateY() { + return mutateY; + } + + public double getMutateZ() { + return mutateZ; + } + + public CarverPalette getTop() { + return top; + } + + public CarverPalette getBottom() { + return bottom; + } + + public CarverPalette getOuter() { + return outer; + } + + public CarverPalette getInner() { + return inner; + } + + public Map getShift() { + return shift; + } + + public MaterialSet getUpdate() { + return update; + } + + public Range getRecalc() { + return recalc; + } + + public double getRecaclulateMagnitude() { + return recaclulateMagnitude; + } +} diff --git a/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java b/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java index f3875fac8..4bb60eae1 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java +++ b/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java @@ -102,14 +102,14 @@ public class TerraFlora implements Flora { List faces = doRotation ? getFaces(location.clone().add(0, c, 0).getBlock()) : new GlueList<>(); if(doRotation && faces.size() == 0) return false; // Don't plant if no faces are valid. - BlockFace oneFace = doRotation ? faces.get(new FastRandom(location.getBlockX() ^ location.getBlockZ()).nextInt(faces.size())) : null; // Get random face. for(int i = 0; FastMath.abs(i) < size; i += c) { // Down if ceiling, up if floor int lvl = (FastMath.abs(i)); BlockData data = floraPalette.get((ceiling ? lvl : size - lvl - 1), location.getX(), location.getY(), location.getZ()).clone(); if(doRotation) { + BlockFace oneFace = faces.get(new FastRandom(location.getBlockX() ^ location.getBlockZ()).nextInt(faces.size())); // Get random face. if(data instanceof Directional) { - ((Directional) data).setFacing(oneFace); + ((Directional) data).setFacing(oneFace.getOppositeFace()); } else if(data instanceof MultipleFacing) { MultipleFacing o = (MultipleFacing) data; for(BlockFace face : o.getFaces()) o.setFace(face, false); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java index 899ae6dad..01d298372 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java @@ -9,9 +9,6 @@ import io.papermc.paper.event.world.StructureLocateEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -/** - * Placeholder, will be used once Paper accepts StructureLocateEvent PR. - */ public class PaperListener implements Listener { private final TerraPlugin main; diff --git a/platforms/bukkit/src/main/resources/lang/afr_sa.yml b/platforms/bukkit/src/main/resources/lang/afr_sa.yml index 06b007ca5..662be3461 100644 --- a/platforms/bukkit/src/main/resources/lang/afr_sa.yml +++ b/platforms/bukkit/src/main/resources/lang/afr_sa.yml @@ -11,6 +11,7 @@ command: players-only: "Hierdie opdrag is slegs vir spelers." world: "This command must be executed in a Terra world!" reload: "Terra instel herlaai" + reload-error: "Foute het voorgekom tydens die herlaai van Terra-konfigurasies. Gaan sien logboeke vir meer inligting." version: "Hierdie bediener gebruik die Terra-weergawe \"%s\"" main-menu: - "--------------------Terra--------------------" @@ -27,6 +28,10 @@ command: invalid-radius: "Ongeldige radius: \"%s\"" invalid: "Ongeldige Biome-ID: \"%s\"" in: "Jy is in \"%s\"" + packs: + main: "Tans geïnstalleerde konfigurasiepakkette:" + pack: " - %1$s v%3$s by %2$s" + none: "Geen konfigurasiepakkette is geïnstalleer nie." ore: main-menu: - "---------------Terra/erts---------------" @@ -114,4 +119,4 @@ use-paper: - "Skakel asseblief oor na Paper om die beste uit Terra te kry." - "Plus bied Paper geweldige prestasieverbeterings ten opsigte van Spigot, en alle Spigot-inproppe moet met Paper werk!" - "Gebruik Paper om die beste ervaring met Terra en al u inproppe te hê." - - "Lees meer op Paper se webwerf: https://papermc.io/" + - "Lees meer op Paper se webwerf: https://papermc.io/" \ No newline at end of file diff --git a/platforms/bukkit/src/main/resources/lang/ja_jp.yml b/platforms/bukkit/src/main/resources/lang/ja_jp.yml index 04a399c8c..49f183760 100644 --- a/platforms/bukkit/src/main/resources/lang/ja_jp.yml +++ b/platforms/bukkit/src/main/resources/lang/ja_jp.yml @@ -5,12 +5,14 @@ enable: disable: - "Terraをご利用いただきありがとうございます!" command: + debug-only: "このコマンドは、デバッグモードを有効にして使用する必要があります。" player-only: "このコマンドはプレイヤー専用です!" - terra-world: "このコマンドはTerraのワールドで実行する必要があります!" - invalid: "無効なコマンド(期待される %1$s 引数、%2$s が見つかりました。)" + invalid: "Invalid command. (Expected %1$s arguments, found %2$s)." players-only: "コマンドはプレイヤー専用です。" world: "このコマンドはTerraのワールドで実行する必要があります!" reload: "Terraの設定を再読み込みしました。" + reload-error: "Terraの設定の再ロード中にエラーが発生しました。詳細はログを参照してください。" + version: "このサーバーでは Terraバージョン\"%1$s\" が実行されており、プラットフォームは \"%2$s\" です。" main-menu: - "--------------------Terra--------------------" - "reload - 設定データを再読み込み" @@ -26,6 +28,10 @@ command: invalid-radius: "無効な半径: \"%s\"" invalid: "無効なバイオームID: \"%s\"" in: "あなたは \"%s\" にいます。" + packs: + main: "現在インストールされているコンフィグパック:" + pack: " - %1$s v%3$s by %2$s" + none: "コンフィグパックはインストールされていません。" ore: main-menu: - "---------------Terra/ore---------------" @@ -77,10 +83,11 @@ command: - "export - 現在のWorldEditの選択範囲をTerraストラクチャーとしてエクスポート" - "load - Terraストラクチャーを読み込む" invalid-radius: "無効な半径: \"%s\"" + invalid-rotation: "無効な回転: \"%s\"" invalid: "無効なストラクチャーID: \"%s\"" export: "\"%s\" にストラクチャーを保存" world-config: - loading: "ワールド %s のワールド設定を読込中..." + load: "ワールド \"%s\" のワールド設定値を読み込み中..." not-found: "ワールド \"%s\" の設定が見つかりませんでした。デフォルトの設定をコピーします。" using-image: "画像からワールドを読み込みます。" error: "ワールド %s の設定を読み込めませんでした" @@ -91,6 +98,7 @@ config: loaded: "ファイル %2$s から %1$s を読み込まれました。" loaded-all: "%3$sms で %1$s %2$s で読み込まれました。" error: + invalid-failover: "無効なフェイルオーバータイプ: \"%s\"" duplicate: "ファイルに重複したIDが見つかりました: %s" file: - "Terraオブジェクトに設定エラーがあります。ファイル: %1$s" @@ -104,4 +112,11 @@ warning: error: severe-config: "重大な設定エラーによりTerraが正しく地形を生成できません。座標: %1$s, %2$s エラーがないか設定をチェックしてください。設定エラーは上記で報告されています。" debug: - data-save: "ワールド \"%s\" のデータを保存" \ No newline at end of file + data-save: "ワールド \"%s\" のデータを保存" +use-paper: + - "Spigot/CraftBukkitを使用していています。" + - "TerraはSpigot上で&o動作します&rが、いくつかの機能は使用できません。(TerraはCraftBukkitではテストされていません。CraftBukkitはサポートされません)。" + - "Terraを最大限活用するにはPaperに切り替えてください。" + - "さらに、PaperはSpigotよりもパフォーマンスが大幅に向上しており、すべてのSpigotプラグインはPaperで動作するはずです。" + - "Terraとすべてのプラグインで最高の体験をするためには、Paperをご利用ください。" + - "詳細については、Paperのウェブサイトをご覧ください: https://papermc.io/" \ No newline at end of file diff --git a/platforms/bukkit/src/main/resources/lang/pl.yml b/platforms/bukkit/src/main/resources/lang/pl.yml index f3ef6bf9c..7c72d280c 100644 --- a/platforms/bukkit/src/main/resources/lang/pl.yml +++ b/platforms/bukkit/src/main/resources/lang/pl.yml @@ -25,7 +25,7 @@ command: biome-found: "Zlokalizowano biom na (%1$s, %2$s)" unable-to-locate: "Nie moglismy zlokalizowac biomu." invalid-radius: "Niepoprawny zakres: \"%s\"" - invalid: "Niepoprawne TerraBiome ID: \"%s\"" + invalid: "Niepoprawne Biome ID: \"%s\"" in: "Jestes na \"%s\"" ore: main-menu: diff --git a/platforms/fabric/src/main/resources/assets/terra/icon.png b/platforms/fabric/src/main/resources/assets/terra/icon.png index 39b6d20f6..a8f458866 100644 Binary files a/platforms/fabric/src/main/resources/assets/terra/icon.png and b/platforms/fabric/src/main/resources/assets/terra/icon.png differ