mirror of
https://github.com/TeamMidnightDust/Decorative.git
synced 2025-12-16 21:15:10 +01:00
Initial 1.18.1 port
This commit is contained in:
@@ -9,7 +9,6 @@ import eu.midnightdust.motschen.decorative.blockstates.Program;
|
||||
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
||||
import eu.midnightdust.motschen.decorative.init.*;
|
||||
import eu.midnightdust.motschen.decorative.sound.DecorativeSoundEvents;
|
||||
import eu.midnightdust.motschen.decorative.world.OreFeatureInjector;
|
||||
import eu.midnightdust.motschen.decorative.world.OreFeatures;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
|
||||
@@ -113,7 +112,6 @@ public class DecorativeMain implements ModInitializer {
|
||||
DoubleLamps.init();
|
||||
Clocks.init();
|
||||
OreFeatures.init();
|
||||
OreFeatureInjector.init();
|
||||
new DecorativeSoundEvents();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class DigitalClockRenderer implements BlockEntityRenderer<DigitalClockBlo
|
||||
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
|
||||
matrices.translate(0,0,-0.1);
|
||||
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(180));
|
||||
textRenderer.draw(getTime(), 0, 0, 16382457, false, matrices.peek().getModel(), vertexConsumers, false, 0, light);
|
||||
textRenderer.draw(getTime(), 0, 0, 16382457, false, matrices.peek().getPositionMatrix(), vertexConsumers, false, 0, light);
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,7 @@ public class BathTireItem extends Item {
|
||||
if (!(world.getBlockState(blockPos).getBlock() instanceof FluidBlock)) {
|
||||
return TypedActionResult.pass(itemStack);
|
||||
} else if (world.canPlayerModifyAt(user, blockPos) && user.canPlaceOn(blockPos, blockHitResult.getSide(), itemStack)) {
|
||||
EntityType<?> entityType = this.getEntityType(itemStack.getTag());
|
||||
EntityType<?> entityType = this.getEntityType(itemStack.getNbt());
|
||||
if (entityType.spawnFromItemStack((ServerWorld) world, itemStack, user, blockPos.up(1), SpawnReason.SPAWN_EGG, false, false) == null) {
|
||||
return TypedActionResult.pass(itemStack);
|
||||
} else {
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package eu.midnightdust.motschen.decorative.mixin;
|
||||
|
||||
import net.minecraft.world.biome.GenerationSettings;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mixin(GenerationSettings.class)
|
||||
public interface GenerationSettingsAccessorMixin {
|
||||
|
||||
@Accessor
|
||||
List<List<Supplier<ConfiguredFeature<?, ?>>>> getFeatures();
|
||||
|
||||
@Accessor
|
||||
void setFeatures(List<List<Supplier<ConfiguredFeature<?, ?>>>> features);
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package eu.midnightdust.motschen.decorative.world;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import eu.midnightdust.motschen.decorative.mixin.GenerationSettingsAccessorMixin;
|
||||
import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.GenerationStep;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class OreFeatureInjector {
|
||||
|
||||
public static void init() {
|
||||
BuiltinRegistries.BIOME.forEach(OreFeatureInjector::addToBiome);
|
||||
RegistryEntryAddedCallback.event(BuiltinRegistries.BIOME).register((i, identifier, biome) -> addToBiome(biome));
|
||||
}
|
||||
|
||||
private static void addToBiome(Biome biome) {
|
||||
addSaltOre(biome);
|
||||
}
|
||||
|
||||
private static void addSaltOre(Biome biome) {
|
||||
if (biome.getCategory() != Biome.Category.NETHER && biome.getCategory() != Biome.Category.THEEND) {
|
||||
addFeature(biome, GenerationStep.Feature.UNDERGROUND_DECORATION, OreFeatures.ROCKY_ASPHALT_FEATURE);
|
||||
}
|
||||
}
|
||||
|
||||
public static void addFeature(Biome biome, GenerationStep.Feature step, ConfiguredFeature<?, ?> feature) {
|
||||
GenerationSettingsAccessorMixin generationSettingsAccessor = (GenerationSettingsAccessorMixin) biome.getGenerationSettings();
|
||||
int stepIndex = step.ordinal();
|
||||
List<List<Supplier<ConfiguredFeature<?, ?>>>> featuresByStep = new ArrayList<>( generationSettingsAccessor.getFeatures());
|
||||
while (featuresByStep.size() <= stepIndex) {
|
||||
featuresByStep.add(Lists.newArrayList());
|
||||
}
|
||||
List<Supplier<ConfiguredFeature<?, ?>>> features = new ArrayList<>(featuresByStep.get(stepIndex));
|
||||
features.add(() -> feature);
|
||||
featuresByStep.set(stepIndex, features);
|
||||
generationSettingsAccessor.setFeatures(featuresByStep);
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,29 @@
|
||||
package eu.midnightdust.motschen.decorative.world;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.structure.rule.BlockMatchRuleTest;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.GenerationStep;
|
||||
import net.minecraft.world.gen.decorator.CountPlacementModifier;
|
||||
import net.minecraft.world.gen.decorator.SquarePlacementModifier;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.OreFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.PlacedFeature;
|
||||
|
||||
public class OreFeatures {
|
||||
public static final ConfiguredFeature<?, ?> ROCKY_ASPHALT_FEATURE = Feature.ORE.configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, DecorativeMain.RockyAsphalt.getDefaultState(), 7)).applyChance(200).spreadHorizontally().repeat(20);
|
||||
public static final ConfiguredFeature<?, ?> ROCKY_ASPHALT_FEATURE = Feature.ORE.configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.STONE), DecorativeMain.RockyAsphalt.getDefaultState(), 7));
|
||||
public static final PlacedFeature ROCKY_ASPHALT_PLACED_FEATURE = ROCKY_ASPHALT_FEATURE.withPlacement(SquarePlacementModifier.of());
|
||||
|
||||
public static void init() {
|
||||
Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(DecorativeMain.MOD_ID, "rocky_asphalt"), ROCKY_ASPHALT_FEATURE);
|
||||
Registry.register(BuiltinRegistries.PLACED_FEATURE, new Identifier(DecorativeMain.MOD_ID, "placed_rocky_asphalt"), ROCKY_ASPHALT_PLACED_FEATURE);
|
||||
BiomeModifications.addFeature(biome -> (biome.getBiome().getCategory() != Biome.Category.NETHER && biome.getBiome().getCategory() != Biome.Category.THEEND),
|
||||
GenerationStep.Feature.UNDERGROUND_ORES, BuiltinRegistries.PLACED_FEATURE.getKey(OreFeatures.ROCKY_ASPHALT_PLACED_FEATURE).get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "eu.midnightdust.motschen.decorative.mixin",
|
||||
"compatibilityLevel": "JAVA_16",
|
||||
"mixins": [
|
||||
"GenerationSettingsAccessorMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
@@ -28,10 +28,6 @@
|
||||
]
|
||||
},
|
||||
|
||||
"mixins": [
|
||||
"decorative.mixins.json"
|
||||
],
|
||||
|
||||
"depends": {
|
||||
"fabric": "*",
|
||||
"midnightlib": "*"
|
||||
|
||||
Reference in New Issue
Block a user