diff --git a/build.gradle b/build.gradle index 6baf467..c15b996 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.4-SNAPSHOT' + id 'fabric-loom' version '0.5.25' id 'maven-publish' } diff --git a/gradle.properties b/gradle.properties index dc63613..6c431e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,15 +3,15 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=1.16.1 - yarn_mappings=1.16.1+build.1 - loader_version=0.8.8+build.202 + minecraft_version=1.16.3 + yarn_mappings=1.16.3+build.1 + loader_version=0.9.3+build.207 # Mod Properties - mod_version = 1.16.1.13 + mod_version = 1.16.3.0 maven_group = de.jottyfan.minecraft archives_base_name = quickiefabric # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.16.2+build.385-1.16.1 + fabric_version=0.20.2+build.402-1.16 diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java index f9956e9..60d8c85 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java @@ -2,7 +2,7 @@ package de.jottyfan.minecraft.quickiefabric; import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; import net.fabricmc.api.ModInitializer; -import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.BuiltinRegistries; /** * @@ -19,6 +19,6 @@ public class QuickieFabric implements ModInitializer { RegistryManager.registerBlocks(); RegistryManager.registerBlockEntities(); RegistryManager.registerContainer(); - Registry.BIOME.forEach(RegistryManager::handleBiome); + BuiltinRegistries.BIOME.forEach(RegistryManager::handleBiome); } } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/ItemHoarderBlockEntity.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/ItemHoarderBlockEntity.java index 1f47dbc..3c2531f 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/ItemHoarderBlockEntity.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/ItemHoarderBlockEntity.java @@ -58,7 +58,7 @@ public class ItemHoarderBlockEntity extends LootableContainerBlockEntity impleme BlockPos pos = getPos(); World world = getWorld(); Box box = new Box(pos).expand(suckradius); - List entities = world.getEntities(null, box); + List entities = world.getOtherEntities(null, box); for (Entity entity : entities) { if (entity instanceof ItemEntity) { ItemEntity itemEntity = (ItemEntity) entity; diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/MonsterHoarderBlockEntity.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/MonsterHoarderBlockEntity.java index 1ae7110..404c2c2 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/MonsterHoarderBlockEntity.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/MonsterHoarderBlockEntity.java @@ -29,7 +29,7 @@ public class MonsterHoarderBlockEntity extends BlockEntity implements Tickable { BlockPos pos = getPos(); World world = getWorld(); Box box = new Box(pos).expand(suckradius); - List entities = world.getEntities(null, box); + List entities = world.getOtherEntities(null, box); for (Entity entity : entities) { if (entity instanceof HostileEntity) { HostileEntity mobEntity = (HostileEntity) entity; diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackInventory.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackInventory.java index d0b3c0f..ec93cd5 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackInventory.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackInventory.java @@ -1,8 +1,5 @@ package de.jottyfan.minecraft.quickiefabric.container; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - import de.jottyfan.minecraft.quickiefabric.items.ItemBackpack; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.Inventories; @@ -21,7 +18,6 @@ import net.minecraft.util.collection.DefaultedList; * */ public class BackpackInventory implements Inventory { - private final static Logger LOGGER = LogManager.getLogger(BackpackInventory.class); private final DefaultedList stacks; private final BackpackScreenHandler handler; private Hand hand; diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackScreen.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackScreen.java index 59decd4..74a3653 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackScreen.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/container/BackpackScreen.java @@ -1,8 +1,5 @@ package de.jottyfan.minecraft.quickiefabric.container; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - import com.mojang.blaze3d.platform.GlStateManager; import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; @@ -25,7 +22,6 @@ import net.minecraft.util.Identifier; @Environment(EnvType.CLIENT) public class BackpackScreen extends HandledScreen implements ScreenHandlerProvider { - private final static Logger LOGGER = LogManager.getLogger(BackpackScreen.class); private final static Identifier TEXTURE = new Identifier(RegistryManager.QUICKIEFABRIC, "textures/gui/backpack.png"); private final static Identifier SLOT_TEXTURE = new Identifier(RegistryManager.QUICKIEFABRIC, diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java index e1e8e81..9cbed09 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java @@ -2,10 +2,14 @@ package de.jottyfan.minecraft.quickiefabric.init; import java.util.ArrayList; import java.util.List; +import java.util.function.Supplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; + import de.jottyfan.minecraft.quickiefabric.blockentity.ItemHoarderBlockEntity; import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity; import de.jottyfan.minecraft.quickiefabric.blockentity.QuickieFabricBlockEntity; @@ -26,16 +30,19 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.screen.ScreenHandlerType; +import net.minecraft.structure.rule.RuleTest; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.decorator.ChanceDecoratorConfig; import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.decorator.RangeDecoratorConfig; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.OreFeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig.Target; +import net.minecraft.world.gen.feature.ConfiguredFeature; import net.minecraft.world.gen.feature.SimpleBlockFeatureConfig; /** @@ -152,6 +159,30 @@ public class RegistryManager { }); } + /** + * add configured feature to biome + * + * @param biome the biome + * @param generationStep the genration step + * @param configuredFeature the configured feature + */ + private static final void addFeature(Biome biome, GenerationStep.Feature generationStep, + Supplier> configuredFeature) { + GenerationSettings generationSettings = biome.getGenerationSettings(); + List>>> features = generationSettings.getFeatures(); + if (features instanceof ImmutableList) { + features = Lists.newArrayList(features); + } + for (int i = features.size(); i <= generationStep.ordinal(); i++) { + features.add(Lists.newArrayList()); + } + List>> suppliers = features.get(generationStep.ordinal()); + if (suppliers instanceof ImmutableList) { + features.set(generationStep.ordinal(), suppliers = Lists.newArrayList(suppliers)); + } + suppliers.add(configuredFeature); + } + /** * generate ores * @@ -164,12 +195,12 @@ public class RegistryManager { * @param topOffset the upper limit * @param maximum the maximum number of blocks in a vein */ - public static void generateOreForTarget(Biome biome, Target target, Block block, int veinsize, int count, + public static void generateOreForTarget(Biome biome, RuleTest target, Block block, int veinsize, int count, int bottomOffset, int topOffset, int maximum) { OreFeatureConfig ofc = new OreFeatureConfig(target, block.getDefaultState(), veinsize); - RangeDecoratorConfig rdc = new RangeDecoratorConfig(count, bottomOffset, topOffset, maximum); - biome.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, - Feature.ORE.configure(ofc).createDecoratedFeature(Decorator.COUNT_RANGE.configure(rdc))); + RangeDecoratorConfig rdc = new RangeDecoratorConfig(bottomOffset, topOffset, maximum); + addFeature(biome, GenerationStep.Feature.UNDERGROUND_ORES, + () -> Feature.ORE.configure(ofc).decorate(Decorator.RANGE.configure(rdc).spreadHorizontally().repeat(count))); } /** @@ -183,10 +214,11 @@ public class RegistryManager { * @param chance the chance for the replacement */ public static void generateOreInBlocks(Biome biome, List placeOn, List placeIn, - List placeUnder, Block block, float chance) { + List placeUnder, Block block, int chance) { SimpleBlockFeatureConfig sbfc = new SimpleBlockFeatureConfig(block.getDefaultState(), placeOn, placeIn, placeUnder); - biome.addFeature(GenerationStep.Feature.LOCAL_MODIFICATIONS, - Feature.SIMPLE_BLOCK.configure(sbfc).withChance(chance).feature); + ChanceDecoratorConfig cdc = new ChanceDecoratorConfig(chance); + addFeature(biome, GenerationStep.Feature.LOCAL_MODIFICATIONS, + () -> Feature.SIMPLE_BLOCK.configure(sbfc).decorate(Decorator.CHANCE.configure(cdc))); } /** @@ -196,7 +228,7 @@ public class RegistryManager { */ public static final void handleBiome(Biome biome) { if (biome.getCategory() == Biome.Category.NETHER) { - RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NETHER_ORE_REPLACEABLES, + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Rules.BASE_STONE_NETHER, QuickieBlocks.ORE_NETHER_SULPHOR, 24, 10, 0, 0, 128); } else if (biome.getCategory() == Biome.Category.THEEND) { } else { @@ -208,13 +240,13 @@ public class RegistryManager { List dirtlike = new ArrayList<>(); dirtlike.add(Blocks.DIRT.getDefaultState()); dirtlike.add(Blocks.GRASS.getDefaultState()); - RegistryManager.generateOreInBlocks(biome, dirtlike, dirtlike, dirtlike, QuickieBlocks.DIRT_SALPETER, 1.0f); - RegistryManager.generateOreInBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.SAND_SALPETER, 1.0f); - RegistryManager.generateOreInBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.ORE_SAND_SALPETER, 1.0f); - RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NATURAL_STONE, QuickieBlocks.ORE_SULPHOR, 16, - 4, 4, 196, 255); - RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NATURAL_STONE, QuickieBlocks.ORE_SALPETER, 12, - 10, 4, 196, 255); + RegistryManager.generateOreInBlocks(biome, dirtlike, dirtlike, dirtlike, QuickieBlocks.DIRT_SALPETER, 1); + RegistryManager.generateOreInBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.SAND_SALPETER, 1); + RegistryManager.generateOreInBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.ORE_SAND_SALPETER, 1); + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, + QuickieBlocks.ORE_SULPHOR, 16, 4, 4, 32, 255); + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, + QuickieBlocks.ORE_SALPETER, 12, 10, 4, 32, 255); } } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemBackpack.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemBackpack.java index d57fae7..560862d 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemBackpack.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemBackpack.java @@ -11,7 +11,6 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.DyeableItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext;