end update in the end wohoo idfk
This commit is contained in:
@@ -6,7 +6,7 @@ minecraft_version=1.20.1
|
|||||||
yarn_mappings=1.20.1+build.10
|
yarn_mappings=1.20.1+build.10
|
||||||
loader_version=0.18.3
|
loader_version=0.18.3
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=26.3.29
|
mod_version=26.3.29.1
|
||||||
maven_group=dev.tggamesyt
|
maven_group=dev.tggamesyt
|
||||||
archives_base_name=szar
|
archives_base_name=szar
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|||||||
@@ -1412,7 +1412,7 @@ public class Szar implements ModInitializer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
TheEndBiomeData.addEndBiomeReplacement(BiomeKeys.END_HIGHLANDS, Szar.CHORUS_FOREST, 0.3);
|
TheEndBiomeData.addEndBiomeReplacement(BiomeKeys.END_HIGHLANDS, Szar.CHORUS_FOREST, 0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Block TIC_TAC_TOE_BLOCK = Registry.register(
|
public static final Block TIC_TAC_TOE_BLOCK = Registry.register(
|
||||||
@@ -1515,11 +1515,6 @@ public class Szar implements ModInitializer {
|
|||||||
RegistryKeys.BIOME,
|
RegistryKeys.BIOME,
|
||||||
new Identifier(MOD_ID, "chorus_forest")
|
new Identifier(MOD_ID, "chorus_forest")
|
||||||
);
|
);
|
||||||
public static final Feature<DefaultFeatureConfig> SURFACE_REPLACE = Registry.register(
|
|
||||||
Registries.FEATURE,
|
|
||||||
new Identifier(MOD_ID, "surface_replace"),
|
|
||||||
new SurfaceReplaceFeature(DefaultFeatureConfig.CODEC)
|
|
||||||
);
|
|
||||||
// Blocks
|
// Blocks
|
||||||
public static final TrackerBlock TRACKER_BLOCK = Registry.register(
|
public static final TrackerBlock TRACKER_BLOCK = Registry.register(
|
||||||
Registries.BLOCK, new Identifier(MOD_ID, "tracker"),
|
Registries.BLOCK, new Identifier(MOD_ID, "tracker"),
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package dev.tggamesyt.szar.mixin;
|
||||||
|
|
||||||
|
import dev.tggamesyt.szar.Szar;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.chunk.Chunk;
|
||||||
|
import net.minecraft.world.gen.chunk.Blender;
|
||||||
|
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
||||||
|
import net.minecraft.world.ChunkRegion;
|
||||||
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
|
import net.minecraft.world.gen.noise.NoiseConfig;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
@Mixin(NoiseChunkGenerator.class)
|
||||||
|
public class NoiseChunkGeneratorMixin {
|
||||||
|
|
||||||
|
@Inject(method = "buildSurface*", at = @At("TAIL"))
|
||||||
|
private void replaceSurface(ChunkRegion region, StructureAccessor structures, NoiseConfig noiseConfig, Chunk chunk, CallbackInfo ci) {
|
||||||
|
BlockPos.Mutable mutable = new BlockPos.Mutable();
|
||||||
|
int startX = chunk.getPos().getStartX();
|
||||||
|
int startZ = chunk.getPos().getStartZ();
|
||||||
|
|
||||||
|
for (int x = 0; x < 16; x++) {
|
||||||
|
for (int z = 0; z < 16; z++) {
|
||||||
|
int worldX = startX + x;
|
||||||
|
int worldZ = startZ + z;
|
||||||
|
int topY = chunk.getHeightmap(net.minecraft.world.Heightmap.Type.WORLD_SURFACE_WG).get(x, z);
|
||||||
|
|
||||||
|
mutable.set(worldX, topY, worldZ);
|
||||||
|
RegistryEntry<Biome> biome = region.getBiome(mutable);
|
||||||
|
|
||||||
|
if (biome.matchesKey(Szar.CHORUS_FOREST)) {
|
||||||
|
mutable.set(worldX, topY - 1, worldZ);
|
||||||
|
if (chunk.getBlockState(mutable).isOf(Blocks.END_STONE)) {
|
||||||
|
chunk.setBlockState(mutable, Szar.CHORUS_ENDSTONE.getDefaultState(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package dev.tggamesyt.szar.mixin;
|
||||||
|
|
||||||
|
import dev.tggamesyt.szar.Szar;
|
||||||
|
import net.minecraft.registry.RegistryEntryLookup;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
|
import net.minecraft.util.math.ChunkSectionPos;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.biome.BiomeKeys;
|
||||||
|
import net.minecraft.world.biome.source.BiomeCoords;
|
||||||
|
import net.minecraft.world.biome.source.TheEndBiomeSource;
|
||||||
|
import net.minecraft.world.biome.source.util.MultiNoiseUtil;
|
||||||
|
import org.spongepowered.asm.mixin.*;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
|
||||||
|
@Mixin(TheEndBiomeSource.class)
|
||||||
|
public class TheEndBiomeSourceMixin {
|
||||||
|
|
||||||
|
@Unique
|
||||||
|
private RegistryEntry<Biome> szar$chorusEntry;
|
||||||
|
|
||||||
|
@Inject(method = "<init>", at = @At("TAIL"))
|
||||||
|
private void onInit(RegistryEntry<Biome> centerBiome, RegistryEntry<Biome> highlandsBiome, RegistryEntry<Biome> midlandsBiome, RegistryEntry<Biome> smallIslandsBiome, RegistryEntry<Biome> barrensBiome, CallbackInfo ci) {
|
||||||
|
RegistryEntryLookup<Biome> lookup = net.fabricmc.fabric.impl.biome.TheEndBiomeData.biomeRegistry.get();
|
||||||
|
if (lookup != null) {
|
||||||
|
this.szar$chorusEntry = lookup.getOrThrow(Szar.CHORUS_FOREST);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject(method = "getBiome", at = @At("RETURN"), cancellable = true)
|
||||||
|
private void overrideBiome(int x, int y, int z, MultiNoiseUtil.MultiNoiseSampler noise, CallbackInfoReturnable<RegistryEntry<Biome>> cir) {
|
||||||
|
if (szar$chorusEntry == null) return;
|
||||||
|
|
||||||
|
RegistryEntry<Biome> result = cir.getReturnValue();
|
||||||
|
if (!result.matchesKey(BiomeKeys.END_HIGHLANDS)
|
||||||
|
&& !result.matchesKey(BiomeKeys.END_MIDLANDS)
|
||||||
|
&& !result.matchesKey(BiomeKeys.END_BARRENS)) return;
|
||||||
|
|
||||||
|
int islandX = ChunkSectionPos.getSectionCoord(BiomeCoords.toBlock(x)) >> 3;
|
||||||
|
int islandZ = ChunkSectionPos.getSectionCoord(BiomeCoords.toBlock(z)) >> 3;
|
||||||
|
long islandSeed = (long) islandX * 341873128712L + (long) islandZ * 132897987541L;
|
||||||
|
|
||||||
|
if (new java.util.Random(islandSeed).nextFloat() < 0.4f) {
|
||||||
|
cir.setReturnValue(szar$chorusEntry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package dev.tggamesyt.szar.mixin;
|
|
||||||
|
|
||||||
import dev.tggamesyt.szar.Szar;
|
|
||||||
import net.minecraft.block.Blocks;
|
|
||||||
import net.minecraft.world.gen.surfacebuilder.MaterialRules;
|
|
||||||
import net.minecraft.world.gen.surfacebuilder.VanillaSurfaceRules;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|
||||||
|
|
||||||
@Mixin(VanillaSurfaceRules.class)
|
|
||||||
public class VanillaSurfaceRulesMixin {
|
|
||||||
|
|
||||||
@Inject(method = "getEndStoneRule", at = @At("RETURN"), cancellable = true)
|
|
||||||
private static void overrideEndStoneRule(CallbackInfoReturnable<MaterialRules.MaterialRule> cir) {
|
|
||||||
MaterialRules.MaterialRule chorusForest = MaterialRules.condition(
|
|
||||||
MaterialRules.biome(Szar.CHORUS_FOREST),
|
|
||||||
MaterialRules.block(Szar.CHORUS_ENDSTONE.getDefaultState())
|
|
||||||
);
|
|
||||||
|
|
||||||
cir.setReturnValue(MaterialRules.sequence(chorusForest, cir.getReturnValue()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"values": [
|
"values": [
|
||||||
|
"szar:chemical_workbench",
|
||||||
"szar:roulette",
|
"szar:roulette",
|
||||||
"szar:slot_machine",
|
"szar:slot_machine",
|
||||||
"szar:tictactoe",
|
"szar:tictactoe",
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "szar:chemical_workbench"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "szar:surface_replace",
|
|
||||||
"config": {}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"feature": "szar:chorus_endstone_surface",
|
|
||||||
"placement": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:in_square"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:heightmap",
|
|
||||||
"heightmap": "WORLD_SURFACE_WG"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:biome"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
"feature": "szar:small_chorus",
|
"feature": "szar:small_chorus",
|
||||||
"placement": [
|
"placement": [
|
||||||
{ "type": "minecraft:count", "count": 5 },
|
{ "type": "minecraft:count", "count": 5 },
|
||||||
{ "type": "minecraft:in_square" }
|
{ "type": "minecraft:in_square" },
|
||||||
|
{ "type": "minecraft:heightmap", "heightmap": "WORLD_SURFACE_WG" },
|
||||||
|
{ "type": "minecraft:biome" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -14,13 +14,14 @@
|
|||||||
"LevelSummaryMixin",
|
"LevelSummaryMixin",
|
||||||
"LivingEntityFallDamageMixin",
|
"LivingEntityFallDamageMixin",
|
||||||
"NoClipMixin",
|
"NoClipMixin",
|
||||||
|
"NoiseChunkGeneratorMixin",
|
||||||
"PlaneBlockInteractionMixin",
|
"PlaneBlockInteractionMixin",
|
||||||
"PlayerDropMixin",
|
"PlayerDropMixin",
|
||||||
"PlayerEntityMixin",
|
"PlayerEntityMixin",
|
||||||
"PlayerInteractionMixin",
|
"PlayerInteractionMixin",
|
||||||
"PlayerSleepMixin",
|
"PlayerSleepMixin",
|
||||||
"RadiatedItemMixin",
|
"RadiatedItemMixin",
|
||||||
"VanillaSurfaceRulesMixin"
|
"TheEndBiomeSourceMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|||||||
Reference in New Issue
Block a user