test
This commit is contained in:
@@ -1,95 +0,0 @@
|
|||||||
package com.tiedup.remake.worldgen;
|
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.level.block.Rotation;
|
|
||||||
import net.minecraft.world.level.levelgen.Heightmap;
|
|
||||||
import net.minecraft.world.level.levelgen.structure.StructureType;
|
|
||||||
import net.minecraft.world.level.levelgen.structure.pieces.StructurePiecesBuilder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Kidnapper Fortress - Large, rare structure.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* The largest kidnapper structure type.
|
|
||||||
* Contains:
|
|
||||||
* - Main fortress building (kidnap_fortress) with elite kidnapper boss, cells, etc.
|
|
||||||
*
|
|
||||||
* Very rare spawn, contains valuable loot and dangerous enemies.
|
|
||||||
* Structure has 9 blocks underground, so Y offset is -9.
|
|
||||||
* Only spawns on flat terrain (max 3 blocks height difference).
|
|
||||||
*/
|
|
||||||
public class KidnapperFortressStructure extends AbstractKidnapperStructure {
|
|
||||||
|
|
||||||
public static final Codec<KidnapperFortressStructure> CODEC =
|
|
||||||
RecordCodecBuilder.create(instance ->
|
|
||||||
instance
|
|
||||||
.group(settingsCodec(instance))
|
|
||||||
.apply(instance, KidnapperFortressStructure::new)
|
|
||||||
);
|
|
||||||
|
|
||||||
public KidnapperFortressStructure(StructureSettings settings) {
|
|
||||||
super(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getCheckRadius() {
|
|
||||||
return 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getMaxHeightDifference() {
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getYOffset() {
|
|
||||||
return -9;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void generatePieces(
|
|
||||||
StructurePiecesBuilder builder,
|
|
||||||
GenerationContext context,
|
|
||||||
BlockPos centerPos,
|
|
||||||
Rotation rotation
|
|
||||||
) {
|
|
||||||
// Calculate fortress position with custom Y offset (9 blocks underground)
|
|
||||||
int y =
|
|
||||||
context
|
|
||||||
.chunkGenerator()
|
|
||||||
.getFirstOccupiedHeight(
|
|
||||||
centerPos.getX(),
|
|
||||||
centerPos.getZ(),
|
|
||||||
Heightmap.Types.WORLD_SURFACE_WG,
|
|
||||||
context.heightAccessor(),
|
|
||||||
context.randomState()
|
|
||||||
) +
|
|
||||||
getYOffset();
|
|
||||||
|
|
||||||
BlockPos fortressPos = new BlockPos(
|
|
||||||
centerPos.getX(),
|
|
||||||
y,
|
|
||||||
centerPos.getZ()
|
|
||||||
);
|
|
||||||
|
|
||||||
builder.addPiece(
|
|
||||||
new KidnapperCampPiece(
|
|
||||||
context.structureTemplateManager(),
|
|
||||||
ResourceLocation.fromNamespaceAndPath(
|
|
||||||
"tiedup",
|
|
||||||
"kidnap_fortress"
|
|
||||||
),
|
|
||||||
fortressPos,
|
|
||||||
rotation
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public StructureType<?> type() {
|
|
||||||
return ModStructures.KIDNAPPER_FORTRESS.get();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user