obsidian cube and ender update
Some checks failed
Build Minecraft Mod / build (push) Has started running
Build Minecraft Mod / release (push) Has been cancelled

This commit is contained in:
2026-04-13 10:43:28 +02:00
parent 994d2b961b
commit 790ebd2535
41 changed files with 152 additions and 4 deletions

View File

@@ -6,7 +6,7 @@ minecraft_version=1.20.1
yarn_mappings=1.20.1+build.10
loader_version=0.18.3
# Mod Properties
mod_version=26.4.1-downside-up
mod_version=26.4.13
maven_group=dev.tggamesyt
archives_base_name=szar
# Dependencies

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,65 @@
package dev.tggamesyt.szar;
import com.mojang.serialization.Codec;
import net.minecraft.structure.StructurePlacementData;
import net.minecraft.util.BlockRotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.Heightmap;
import net.minecraft.world.gen.structure.Structure;
import net.minecraft.world.gen.structure.StructureType;
import java.util.Optional;
public class ObsidianCubeStructure extends Structure {
public static final Codec<ObsidianCubeStructure> CODEC =
Structure.createCodec(ObsidianCubeStructure::new);
public ObsidianCubeStructure(Config config) {
super(config);
}
@Override
protected Optional<StructurePosition> getStructurePosition(Context context) {
return Structure.getStructurePosition(
context,
Heightmap.Type.WORLD_SURFACE_WG,
collector -> {
ChunkPos chunkPos = context.chunkPos();
int x = chunkPos.getCenterX();
int z = chunkPos.getCenterZ();
int y = context.chunkGenerator().getHeightInGround(
x, z,
Heightmap.Type.WORLD_SURFACE_WG,
context.world(),
context.noiseConfig()
);
BlockPos pos = new BlockPos(x, y, z);
StructurePlacementData placement =
new StructurePlacementData()
.setRotation(
BlockRotation.random(context.random())
);
collector.addPiece(
new ObsidianCubeStructurePiece(
context,
pos,
BlockPos.ORIGIN,
placement
)
);
}
);
}
@Override
public StructureType<?> getType() {
return Szar.OBSIDIAN_CUBE_TYPE;
}
}

View File

@@ -0,0 +1,49 @@
package dev.tggamesyt.szar;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.structure.SimpleStructurePiece;
import net.minecraft.structure.StructureContext;
import net.minecraft.structure.StructurePlacementData;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockBox;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.gen.structure.Structure;
public class ObsidianCubeStructurePiece extends SimpleStructurePiece {
private static final Identifier TEMPLATE_ID =
new Identifier(Szar.MOD_ID, "obsidian_cube");
/* ===== NORMAL CONSTRUCTOR ===== */
public ObsidianCubeStructurePiece(
Structure.Context context,
BlockPos pos,
BlockPos origin,
StructurePlacementData placement
) {
super(
Szar.OBSIDIAN_CUBE_PIECE,
0,
context.structureTemplateManager(),
TEMPLATE_ID,
TEMPLATE_ID.toString(),
placement,
pos
);
}
/* ===== NBT CONSTRUCTOR ===== */
public ObsidianCubeStructurePiece(StructureContext context, NbtCompound nbt) {
super(
Szar.OBSIDIAN_CUBE_PIECE,
nbt,
context.structureTemplateManager(),
identifier -> new StructurePlacementData()
);
}
@Override
protected void handleMetadata(String metadata, BlockPos pos, ServerWorldAccess world, Random random, BlockBox boundingBox) {}
}

View File

@@ -23,10 +23,10 @@ public class ServerCosmetics {
public static final Identifier MOJANG_CAPES_SYNC = new Identifier(Szar.MOD_ID, "mojang_capes_sync");
private static final String CAPES_URL =
"https://raw.githubusercontent.com/tggamesyt/szar/main/capes.json";
"https://gitea.tggamesyt.dev/tggamesyt/szar/raw/main/capes.json";
private static final String USERS_URL =
"https://raw.githubusercontent.com/tggamesyt/szar/main/usercosmetics.json";
"https://gitea.tggamesyt.dev/tggamesyt/szar/raw/main/usercosmetics.json";
public static final Map<String, String> CAPES = new HashMap<>();
public static final Map<UUID, UserCosmetics> USERS = new HashMap<>();
@@ -112,7 +112,7 @@ public class ServerCosmetics {
USERS.put(uuid, user);
}
Szar.LOGGER.info("Loaded server capes & user cosmetics from GitHub");
Szar.LOGGER.info("Loaded server capes & user cosmetics from Gitea");
} catch (Exception e) {
Szar.LOGGER.error("Failed loading cosmetics", e);

View File

@@ -1785,7 +1785,19 @@ public class Szar implements ModInitializer {
new Identifier(MOD_ID, "island_piece"),
IslandStructurePiece::new
);
public static final StructurePieceType OBSIDIAN_CUBE_PIECE =
Registry.register(
Registries.STRUCTURE_PIECE,
new Identifier(MOD_ID, "obsidian_cube_piece"),
ObsidianCubeStructurePiece::new
);
public static final StructureType<ObsidianCubeStructure> OBSIDIAN_CUBE_TYPE =
Registry.register(
Registries.STRUCTURE_TYPE,
new Identifier(MOD_ID, "obsidian_cube"),
() -> ObsidianCubeStructure.CODEC
);
public static final StructureType<IslandStructure> ISLAND_TYPE =
Registry.register(
Registries.STRUCTURE_TYPE,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

View File

@@ -0,0 +1,8 @@
{
"type": "szar:obsidian_cube",
"biomes": "szar:chorus_forest",
"step": "surface_structures",
"terrain_adaptation": "none",
"spawn_overrides": {},
"config": {}
}

View File

@@ -0,0 +1,14 @@
{
"structures": [
{
"structure": "szar:obsidian_cube",
"weight": 1
}
],
"placement": {
"type": "minecraft:random_spread",
"spacing": 20,
"separation": 10,
"salt": 398826349
}
}