XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

MyDimension

【Java】我的维度模组

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/MyDimension

新增翱翔心境 优化自然心境的地形生成

ee49262
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

12 个文件 +179 -30
Modified build.gradle +12 -1
@@ -109,7 +109,7 @@ tasks.register('generatePlayerMindDimensions') {
109 109 type : 'minecraft:flat',
110 110 settings: [
111 111 biome : 'mydimension:nature_mind',
112 features : false,
112 features : true,
113 113 lakes : false,
114 114 layers : [
115 115 [block: 'minecraft:stone', height: 50],
@@ -119,6 +119,17 @@ tasks.register('generatePlayerMindDimensions') {
119 119 structure_overrides: []
120 120 ]
121 121 ]
122 ],
123 soaring_mind : [
124 type : 'mydimension:soaring_mind',
125 generator: [
126 type : 'mydimension:no_structure_noise',
127 biome_source: [
128 type : 'minecraft:multi_noise',
129 preset: 'minecraft:overworld'
130 ],
131 settings : 'minecraft:floating_islands'
132 ]
122 133 ]
123 134 ]
124 135
Modified gradle.properties +1 -1
@@ -11,7 +11,7 @@ loader_version_range=[47,)
11 11 mod_id=mydimension
12 12 mod_name=\u6211\u7684\u7ef4\u5ea6
13 13 mod_license=CC0-1.0
14 mod_version=2.0.2
14 mod_version=2.1.0
15 15 mod_group_id=com.xfestudio.mydimension
16 16 maven_group=com.xfestudio
17 17 archives_base_name=mydimension
Modified src/main/java/com/xfestudio/mydimension/client/RiftActionScreen.java +17 -16
@@ -47,9 +47,9 @@ public class RiftActionScreen extends Screen {
47 47 int centerX = width / 2;
48 48 int centerY = height / 2;
49 49 addTabs(centerX, centerY - 108);
50 addActionGrid(currentActions(), centerY - 32);
50 addActionGrid(currentActions(), centerY - 36);
51 51 if (inMindDimension) {
52 addCenteredActionButton(RiftAction.SET_ANCHOR, centerY + 78);
52 addCenteredActionButton(RiftAction.SET_ANCHOR, centerY + 88);
53 53 }
54 54 }
55 55
@@ -88,21 +88,22 @@ public class RiftActionScreen extends Screen {
88 88
89 89 private RiftAction[] currentActions() {
90 90 return switch (page) {
91 case TRAVEL_PRIVATE -> new RiftAction[] {RiftAction.ETHEREAL_MIND, RiftAction.MIRROR_MIND, RiftAction.WATER_MIND, RiftAction.NATURE_MIND};
92 case TRAVEL_SHARED -> new RiftAction[] {RiftAction.SHARED_ETHEREAL_MIND, RiftAction.SHARED_MIRROR_MIND, RiftAction.SHARED_WATER_MIND, RiftAction.SHARED_NATURE_MIND};
93 case MOB_PRIVATE -> new RiftAction[] {RiftAction.SEND_MOB_ETHEREAL, RiftAction.SEND_MOB_MIRROR, RiftAction.SEND_MOB_WATER, RiftAction.SEND_MOB_NATURE};
94 case MOB_SHARED -> new RiftAction[] {RiftAction.SEND_MOB_SHARED_ETHEREAL, RiftAction.SEND_MOB_SHARED_MIRROR, RiftAction.SEND_MOB_SHARED_WATER, RiftAction.SEND_MOB_SHARED_NATURE};
95 case COPY_SHARED -> new RiftAction[] {RiftAction.COPY_SHARED_ETHEREAL, RiftAction.COPY_SHARED_MIRROR, RiftAction.COPY_SHARED_WATER, RiftAction.COPY_SHARED_NATURE};
91 case TRAVEL_PRIVATE -> new RiftAction[] {RiftAction.ETHEREAL_MIND, RiftAction.MIRROR_MIND, RiftAction.WATER_MIND, RiftAction.NATURE_MIND, RiftAction.SOARING_MIND};
92 case TRAVEL_SHARED -> new RiftAction[] {RiftAction.SHARED_ETHEREAL_MIND, RiftAction.SHARED_MIRROR_MIND, RiftAction.SHARED_WATER_MIND, RiftAction.SHARED_NATURE_MIND, RiftAction.SHARED_SOARING_MIND};
93 case MOB_PRIVATE -> new RiftAction[] {RiftAction.SEND_MOB_ETHEREAL, RiftAction.SEND_MOB_MIRROR, RiftAction.SEND_MOB_WATER, RiftAction.SEND_MOB_NATURE, RiftAction.SEND_MOB_SOARING};
94 case MOB_SHARED -> new RiftAction[] {RiftAction.SEND_MOB_SHARED_ETHEREAL, RiftAction.SEND_MOB_SHARED_MIRROR, RiftAction.SEND_MOB_SHARED_WATER, RiftAction.SEND_MOB_SHARED_NATURE, RiftAction.SEND_MOB_SHARED_SOARING};
95 case COPY_SHARED -> new RiftAction[] {RiftAction.COPY_SHARED_ETHEREAL, RiftAction.COPY_SHARED_MIRROR, RiftAction.COPY_SHARED_WATER, RiftAction.COPY_SHARED_NATURE, RiftAction.COPY_SHARED_SOARING};
96 96 };
97 97 }
98 98
99 99 private void addActionGrid(RiftAction[] actions, int top) {
100 int buttonWidth = rowButtonWidth(2);
101 int totalWidth = buttonWidth * 2 + BUTTON_GAP;
100 int columns = 3;
101 int buttonWidth = rowButtonWidth(columns);
102 int totalWidth = buttonWidth * columns + BUTTON_GAP * (columns - 1);
102 103 int left = width / 2 - totalWidth / 2;
103 104 for (int i = 0; i < actions.length; i++) {
104 int x = left + (i % 2) * (buttonWidth + BUTTON_GAP);
105 int y = top + (i / 2) * 42;
105 int x = left + (i % columns) * (buttonWidth + BUTTON_GAP);
106 int y = top + (i / columns) * 42;
106 107 addRenderableWidget(new ActionButton(x, y, buttonWidth, actions[i], getSelectedAction() == actions[i]));
107 108 }
108 109 }
@@ -115,21 +116,21 @@ public class RiftActionScreen extends Screen {
115 116 private int rowButtonWidth(int columns) {
116 117 int available = Math.max(96, width - 64);
117 118 int maxByWidth = (available - (columns - 1) * BUTTON_GAP) / columns;
118 return Mth.clamp(maxByWidth, 116, 178);
119 return Mth.clamp(maxByWidth, 64, 150);
119 120 }
120 121
121 122 private void renderCenterPanel(GuiGraphics graphics) {
122 123 int centerX = width / 2;
123 124 int centerY = height / 2;
124 int left = centerX - 120;
125 int left = centerX - 180;
125 126 int top = centerY - 72;
126 int right = centerX + 120;
127 int bottom = centerY + 64;
127 int right = centerX + 180;
128 int bottom = centerY + 72;
128 129
129 130 fillRoundedRect(graphics, left, top, right, bottom, 7, 0x99060A12);
130 131 drawRoundedBorder(graphics, left, top, right, bottom, 7, 0xFF85D6F7);
131 132 graphics.drawCenteredString(font, title, centerX, centerY - 61, 0xFFEAFBFF);
132 graphics.drawCenteredString(font, page.title(), centerX, centerY + 43, page == Page.COPY_SHARED ? 0xFFB8FFD2 : 0xFF9DDBFF);
133 graphics.drawCenteredString(font, page.title(), centerX, centerY + 52, page == Page.COPY_SHARED ? 0xFFB8FFD2 : 0xFF9DDBFF);
133 134 }
134 135
135 136 private RiftAction getSelectedAction() {
Modified src/main/java/com/xfestudio/mydimension/item/RiftAction.java +5 -0
@@ -12,22 +12,27 @@ public enum RiftAction {
12 12 MIRROR_MIND("mirror_mind", "action.mydimension.mirror_mind", ModDimensions.MIRROR_MIND, false, false, false),
13 13 WATER_MIND("water_mind", "action.mydimension.water_mind", ModDimensions.WATER_MIND, false, false, false),
14 14 NATURE_MIND("nature_mind", "action.mydimension.nature_mind", ModDimensions.NATURE_MIND, false, false, false),
15 SOARING_MIND("soaring_mind", "action.mydimension.soaring_mind", ModDimensions.SOARING_MIND, false, false, false),
15 16 SHARED_ETHEREAL_MIND("shared_ethereal_mind", "action.mydimension.shared_ethereal_mind", ModDimensions.ETHEREAL_MIND, false, true, false),
16 17 SHARED_MIRROR_MIND("shared_mirror_mind", "action.mydimension.shared_mirror_mind", ModDimensions.MIRROR_MIND, false, true, false),
17 18 SHARED_WATER_MIND("shared_water_mind", "action.mydimension.shared_water_mind", ModDimensions.WATER_MIND, false, true, false),
18 19 SHARED_NATURE_MIND("shared_nature_mind", "action.mydimension.shared_nature_mind", ModDimensions.NATURE_MIND, false, true, false),
20 SHARED_SOARING_MIND("shared_soaring_mind", "action.mydimension.shared_soaring_mind", ModDimensions.SOARING_MIND, false, true, false),
19 21 SEND_MOB_ETHEREAL("send_mob_ethereal", "action.mydimension.send_mob_ethereal", ModDimensions.ETHEREAL_MIND, true, false, false),
20 22 SEND_MOB_MIRROR("send_mob_mirror", "action.mydimension.send_mob_mirror", ModDimensions.MIRROR_MIND, true, false, false),
21 23 SEND_MOB_WATER("send_mob_water", "action.mydimension.send_mob_water", ModDimensions.WATER_MIND, true, false, false),
22 24 SEND_MOB_NATURE("send_mob_nature", "action.mydimension.send_mob_nature", ModDimensions.NATURE_MIND, true, false, false),
25 SEND_MOB_SOARING("send_mob_soaring", "action.mydimension.send_mob_soaring", ModDimensions.SOARING_MIND, true, false, false),
23 26 SEND_MOB_SHARED_ETHEREAL("send_mob_shared_ethereal", "action.mydimension.send_mob_shared_ethereal", ModDimensions.ETHEREAL_MIND, true, true, false),
24 27 SEND_MOB_SHARED_MIRROR("send_mob_shared_mirror", "action.mydimension.send_mob_shared_mirror", ModDimensions.MIRROR_MIND, true, true, false),
25 28 SEND_MOB_SHARED_WATER("send_mob_shared_water", "action.mydimension.send_mob_shared_water", ModDimensions.WATER_MIND, true, true, false),
26 29 SEND_MOB_SHARED_NATURE("send_mob_shared_nature", "action.mydimension.send_mob_shared_nature", ModDimensions.NATURE_MIND, true, true, false),
30 SEND_MOB_SHARED_SOARING("send_mob_shared_soaring", "action.mydimension.send_mob_shared_soaring", ModDimensions.SOARING_MIND, true, true, false),
27 31 COPY_SHARED_ETHEREAL("copy_shared_ethereal", "action.mydimension.copy_shared_ethereal", ModDimensions.ETHEREAL_MIND, false, false, true),
28 32 COPY_SHARED_MIRROR("copy_shared_mirror", "action.mydimension.copy_shared_mirror", ModDimensions.MIRROR_MIND, false, false, true),
29 33 COPY_SHARED_WATER("copy_shared_water", "action.mydimension.copy_shared_water", ModDimensions.WATER_MIND, false, false, true),
30 34 COPY_SHARED_NATURE("copy_shared_nature", "action.mydimension.copy_shared_nature", ModDimensions.NATURE_MIND, false, false, true),
35 COPY_SHARED_SOARING("copy_shared_soaring", "action.mydimension.copy_shared_soaring", ModDimensions.SOARING_MIND, false, false, true),
31 36 SET_ANCHOR("set_anchor", "action.mydimension.set_anchor", null, false, false, false);
32 37
33 38 private final String id;
Modified src/main/java/com/xfestudio/mydimension/item/RiftItem.java +56 -6
@@ -162,7 +162,10 @@ public class RiftItem extends Item {
162 162
163 163 double x = player.getX();
164 164 double z = player.getZ();
165 double y = returningFromSelectedMind ? overworldSpawnY(targetLevel) : safeEntryY(targetLevel, actualTargetDimension, x, z);
165 EntryPoint entryPoint = returningFromSelectedMind ? new EntryPoint(x, overworldSpawnY(targetLevel), z) : safeEntryPoint(targetLevel, actualTargetDimension, x, z);
166 x = entryPoint.x();
167 double y = entryPoint.y();
168 z = entryPoint.z();
166 169 float yRot = player.getYRot();
167 170 float xRot = player.getXRot();
168 171
@@ -208,14 +211,57 @@ public class RiftItem extends Item {
208 211 }
209 212
210 213 private static double safeEntryY(ServerLevel level, ResourceKey<Level> dimension, double x, double z) {
214 return safeEntryPoint(level, dimension, x, z).y();
215 }
216
217 private static EntryPoint safeEntryPoint(ServerLevel level, ResourceKey<Level> dimension, double x, double z) {
211 218 int blockX = (int) Math.floor(x);
212 219 int blockZ = (int) Math.floor(z);
213 220 int height = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, blockX, blockZ);
214 221 if (height > level.getMinBuildHeight()) {
215 return height + 1.0D;
222 return new EntryPoint(x, height + 1.0D, z);
223 }
224
225 if (ModDimensions.SOARING_MIND.equals(ModDimensions.baseMindDimension(dimension))) {
226 EntryPoint nearby = findNearbySurface(level, blockX, blockZ);
227 if (nearby != null) {
228 return nearby;
229 }
216 230 }
217 231
218 return ModDimensions.entryHeight(dimension);
232 return new EntryPoint(x, ModDimensions.entryHeight(dimension), z);
233 }
234
235 private static EntryPoint findNearbySurface(ServerLevel level, int centerX, int centerZ) {
236 for (int radius = 8; radius <= 128; radius += 8) {
237 EntryPoint best = null;
238 int bestDistance = Integer.MAX_VALUE;
239 for (int dx = -radius; dx <= radius; dx += 8) {
240 for (int dz = -radius; dz <= radius; dz += 8) {
241 if (Math.abs(dx) != radius && Math.abs(dz) != radius) {
242 continue;
243 }
244
245 int x = centerX + dx;
246 int z = centerZ + dz;
247 int height = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, x, z);
248 if (height <= level.getMinBuildHeight()) {
249 continue;
250 }
251
252 int distance = dx * dx + dz * dz;
253 if (distance < bestDistance) {
254 bestDistance = distance;
255 best = new EntryPoint(x + 0.5D, height + 1.0D, z + 0.5D);
256 }
257 }
258 }
259 if (best != null) {
260 return best;
261 }
262 }
263
264 return null;
219 265 }
220 266
221 267 public static boolean sendToMind(ServerPlayer player, LivingEntity target, ItemStack stack, RiftAction action) {
@@ -232,9 +278,10 @@ public class RiftItem extends Item {
232 278 target.ejectPassengers();
233 279
234 280 AnchorPoint anchor = readAnchor(player, actualTargetDimension);
235 double targetX = anchor != null ? anchor.x() : player.getX();
236 double targetY = anchor != null ? anchor.y() : safeEntryY(targetLevel, actualTargetDimension, targetX, player.getZ());
237 double targetZ = anchor != null ? anchor.z() : player.getZ();
281 EntryPoint targetEntryPoint = safeEntryPoint(targetLevel, actualTargetDimension, player.getX(), player.getZ());
282 double targetX = anchor != null ? anchor.x() : targetEntryPoint.x();
283 double targetY = anchor != null ? anchor.y() : targetEntryPoint.y();
284 double targetZ = anchor != null ? anchor.z() : targetEntryPoint.z();
238 285
239 286 if (target.level().dimension().equals(actualTargetDimension)) {
240 287 player.displayClientMessage(Component.translatable("message.mydimension.already_in_target_mind"), true);
@@ -492,6 +539,9 @@ public class RiftItem extends Item {
492 539 private record ReturnPoint(ResourceKey<Level> dimension, double x, double y, double z, float yRot, float xRot) {
493 540 }
494 541
542 private record EntryPoint(double x, double y, double z) {
543 }
544
495 545 public record AnchorPoint(ResourceKey<Level> dimension, double x, double y, double z) {
496 546 }
497 547
Modified src/main/java/com/xfestudio/mydimension/world/ModDimensions.java +16 -3
@@ -51,25 +51,38 @@ public class ModDimensions {
51 51 new ResourceLocation(MyDimension.MOD_ID, "nature_mind")
52 52 );
53 53
54 public static final ResourceKey<Level> SOARING_MIND = ResourceKey.create(
55 Registries.DIMENSION,
56 new ResourceLocation(MyDimension.MOD_ID, "soaring_mind")
57 );
58
59 public static final ResourceKey<DimensionType> SOARING_MIND_TYPE = ResourceKey.create(
60 Registries.DIMENSION_TYPE,
61 new ResourceLocation(MyDimension.MOD_ID, "soaring_mind")
62 );
63
54 64 private static final Set<ResourceKey<Level>> MIND_DIMENSIONS = Set.of(
55 65 ETHEREAL_MIND,
56 66 MIRROR_MIND,
57 67 WATER_MIND,
58 NATURE_MIND
68 NATURE_MIND,
69 SOARING_MIND
59 70 );
60 71
61 72 private static final Map<ResourceKey<Level>, Double> ENTRY_HEIGHTS = Map.of(
62 73 ETHEREAL_MIND, 66.0D,
63 74 MIRROR_MIND, 80.0D,
64 75 WATER_MIND, 76.0D,
65 NATURE_MIND, 61.0D
76 NATURE_MIND, 61.0D,
77 SOARING_MIND, 128.0D
66 78 );
67 79
68 80 private static final Map<String, ResourceKey<Level>> MIND_IDS = Map.of(
69 81 "ethereal_mind", ETHEREAL_MIND,
70 82 "mirror_mind", MIRROR_MIND,
71 83 "water_mind", WATER_MIND,
72 "nature_mind", NATURE_MIND
84 "nature_mind", NATURE_MIND,
85 "soaring_mind", SOARING_MIND
73 86 );
74 87
75 88 public static boolean isMindDimension(ResourceKey<Level> dimension) {
Modified src/main/resources/assets/mydimension/lang/en_us.json +6 -0
@@ -4,6 +4,7 @@
4 4 "dimension.mydimension.mirror_mind": "Mirror Mind",
5 5 "dimension.mydimension.water_mind": "Water Mind",
6 6 "dimension.mydimension.nature_mind": "Nature Mind",
7 "dimension.mydimension.soaring_mind": "Soaring Mind",
7 8 "screen.mydimension.rift_actions": "Rift",
8 9 "screen.mydimension.rift_actions.travel": "Travel",
9 10 "screen.mydimension.rift_actions.mob": "Send Mob",
@@ -20,22 +21,27 @@
20 21 "action.mydimension.mirror_mind": "Go to Mirror Mind",
21 22 "action.mydimension.water_mind": "Go to Water Mind",
22 23 "action.mydimension.nature_mind": "Go to Nature Mind",
24 "action.mydimension.soaring_mind": "Go to Soaring Mind",
23 25 "action.mydimension.shared_ethereal_mind": "Go to Shared Ethereal",
24 26 "action.mydimension.shared_mirror_mind": "Go to Shared Mirror",
25 27 "action.mydimension.shared_water_mind": "Go to Shared Water",
26 28 "action.mydimension.shared_nature_mind": "Go to Shared Nature",
29 "action.mydimension.shared_soaring_mind": "Go to Shared Soaring",
27 30 "action.mydimension.send_mob_ethereal": "Send Mob to Ethereal",
28 31 "action.mydimension.send_mob_mirror": "Send Mob to Mirror",
29 32 "action.mydimension.send_mob_water": "Send Mob to Water",
30 33 "action.mydimension.send_mob_nature": "Send Mob to Nature",
34 "action.mydimension.send_mob_soaring": "Send Mob to Soaring",
31 35 "action.mydimension.send_mob_shared_ethereal": "Send Mob to Shared Ethereal",
32 36 "action.mydimension.send_mob_shared_mirror": "Send Mob to Shared Mirror",
33 37 "action.mydimension.send_mob_shared_water": "Send Mob to Shared Water",
34 38 "action.mydimension.send_mob_shared_nature": "Send Mob to Shared Nature",
39 "action.mydimension.send_mob_shared_soaring": "Send Mob to Shared Soaring",
35 40 "action.mydimension.copy_shared_ethereal": "Copy Shared Ethereal",
36 41 "action.mydimension.copy_shared_mirror": "Copy Shared Mirror",
37 42 "action.mydimension.copy_shared_water": "Copy Shared Water",
38 43 "action.mydimension.copy_shared_nature": "Copy Shared Nature",
44 "action.mydimension.copy_shared_soaring": "Copy Shared Soaring",
39 45 "action.mydimension.set_anchor": "Set Teleport Anchor",
40 46 "message.mydimension.already_in_target_mind": "That mob is already in the target mind dimension",
41 47 "message.mydimension.anchor_only_mind": "Teleport anchors can only be set in mind dimensions",
Modified src/main/resources/assets/mydimension/lang/zh_cn.json +6 -0
@@ -4,6 +4,7 @@
4 4 "dimension.mydimension.mirror_mind": "镜之心境",
5 5 "dimension.mydimension.water_mind": "水之心境",
6 6 "dimension.mydimension.nature_mind": "自然心境",
7 "dimension.mydimension.soaring_mind": "翱翔心境",
7 8 "screen.mydimension.rift_actions": "裂罅",
8 9 "screen.mydimension.rift_actions.travel": "前往心境",
9 10 "screen.mydimension.rift_actions.mob": "传送生物",
@@ -20,22 +21,27 @@
20 21 "action.mydimension.mirror_mind": "前往镜之心境",
21 22 "action.mydimension.water_mind": "前往水之心境",
22 23 "action.mydimension.nature_mind": "前往自然心境",
24 "action.mydimension.soaring_mind": "前往翱翔心境",
23 25 "action.mydimension.shared_ethereal_mind": "前往共享空灵",
24 26 "action.mydimension.shared_mirror_mind": "前往共享镜",
25 27 "action.mydimension.shared_water_mind": "前往共享水",
26 28 "action.mydimension.shared_nature_mind": "前往共享自然",
29 "action.mydimension.shared_soaring_mind": "前往共享翱翔",
27 30 "action.mydimension.send_mob_ethereal": "传送生物到空灵",
28 31 "action.mydimension.send_mob_mirror": "传送生物到镜",
29 32 "action.mydimension.send_mob_water": "传送生物到水",
30 33 "action.mydimension.send_mob_nature": "传送生物到自然",
34 "action.mydimension.send_mob_soaring": "传送生物到翱翔",
31 35 "action.mydimension.send_mob_shared_ethereal": "传送生物到共享空灵",
32 36 "action.mydimension.send_mob_shared_mirror": "传送生物到共享镜",
33 37 "action.mydimension.send_mob_shared_water": "传送生物到共享水",
34 38 "action.mydimension.send_mob_shared_nature": "传送生物到共享自然",
39 "action.mydimension.send_mob_shared_soaring": "传送生物到共享翱翔",
35 40 "action.mydimension.copy_shared_ethereal": "复制公共空灵",
36 41 "action.mydimension.copy_shared_mirror": "复制公共镜",
37 42 "action.mydimension.copy_shared_water": "复制公共水",
38 43 "action.mydimension.copy_shared_nature": "复制公共自然",
44 "action.mydimension.copy_shared_soaring": "复制公共翱翔",
39 45 "action.mydimension.set_anchor": "设置传送锚点",
40 46 "message.mydimension.already_in_target_mind": "该生物已经在目标心境中",
41 47 "message.mydimension.anchor_only_mind": "只能在心境维度中设置传送锚点",
Modified src/main/resources/data/mydimension/dimension/nature_mind.json +1 -1
@@ -4,7 +4,7 @@
4 4 "type": "minecraft:flat",
5 5 "settings": {
6 6 "biome": "mydimension:nature_mind",
7 "features": false,
7 "features": true,
8 8 "lakes": false,
9 9 "layers": [
10 10 {
Added src/main/resources/data/mydimension/dimension/soaring_mind.json +11 -0
@@ -0,0 +1,11 @@
1 {
2 "type": "mydimension:soaring_mind",
3 "generator": {
4 "type": "mydimension:no_structure_noise",
5 "biome_source": {
6 "type": "minecraft:multi_noise",
7 "preset": "minecraft:overworld"
8 },
9 "settings": "minecraft:floating_islands"
10 }
11 }
Added src/main/resources/data/mydimension/dimension_type/soaring_mind.json +25 -0
@@ -0,0 +1,25 @@
1 {
2 "ambient_light": 0.0,
3 "bed_works": true,
4 "coordinate_scale": 1.0,
5 "effects": "minecraft:overworld",
6 "has_ceiling": false,
7 "has_raids": false,
8 "has_skylight": true,
9 "height": 256,
10 "infiniburn": "#minecraft:infiniburn_overworld",
11 "logical_height": 256,
12 "min_y": 0,
13 "monster_spawn_block_light_limit": 0,
14 "monster_spawn_light_level": {
15 "type": "minecraft:uniform",
16 "value": {
17 "max_inclusive": 0,
18 "min_inclusive": 0
19 }
20 },
21 "natural": true,
22 "piglin_safe": false,
23 "respawn_anchor_works": false,
24 "ultrawarm": false
25 }
Modified src/main/resources/data/mydimension/worldgen/biome/nature_mind.json +23 -2
@@ -1,6 +1,6 @@
1 1 {
2 2 "temperature": 0.8,
3 "downfall": 0.4,
3 "downfall": 0.5,
4 4 "has_precipitation": true,
5 5 "effects": {
6 6 "sky_color": 7907327,
@@ -22,5 +22,26 @@
22 22 },
23 23 "spawn_costs": {},
24 24 "carvers": {},
25 "features": []
25 "features": [
26 [],
27 [],
28 [],
29 [],
30 [],
31 [],
32 [],
33 [],
34 [],
35 [
36 "minecraft:trees_plains",
37 "minecraft:flower_plains",
38 "minecraft:patch_grass_plain",
39 "minecraft:patch_tall_grass_2",
40 "minecraft:brown_mushroom_normal",
41 "minecraft:red_mushroom_normal",
42 "minecraft:patch_sugar_cane",
43 "minecraft:patch_pumpkin"
44 ],
45 []
46 ]
26 47 }