first 1.20.4 version

This commit is contained in:
Jottyfan 2023-12-09 00:27:27 +01:00
parent 21dc27d6f8
commit 12770732b7
7 changed files with 100 additions and 8 deletions

View File

@ -4,17 +4,17 @@
# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.20.3
yarn_mappings=1.20.3+build.1
loader_version=0.15.0
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.1
loader_version=0.15.1
# Mod Properties
mod_version = 1.20.3.5
mod_version = 1.20.4.0
maven_group = de.jottyfan.minecraft
archives_base_name = quickiefabric
# Dependencies
fabric_version=0.91.1+1.20.3
fabric_version=0.91.2+1.20.4
# for ExtendedLeavesBlock
terraform_wood_api_version=9.0.0-alpha.3

View File

@ -12,17 +12,22 @@ import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.CropBlock;
import net.minecraft.block.IceBlock;
import net.minecraft.block.ShapeContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.fluid.FluidState;
import net.minecraft.fluid.Fluids;
import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack;
import net.minecraft.loot.context.LootContextParameterSet.Builder;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.ItemScatterer;
import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
@ -56,7 +61,8 @@ public class BlockSulforpad extends CropBlock {
@Override
protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) {
return floor.getBlock().equals(Blocks.LAVA) || floor.getBlock().equals(Blocks.LAVA_CAULDRON);
Boolean lavaBase = floor.getBlock().equals(Blocks.LAVA) || floor.getBlock().equals(Blocks.LAVA_CAULDRON);
return lavaBase && world.getBlockState(pos.up()).isAir();
}
@Override

View File

@ -61,4 +61,5 @@ public class FeaturesManager {
bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR);
};
}
}

View File

@ -1,5 +1,7 @@
package de.jottyfan.minecraft.quickiefabric.init;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -22,6 +24,8 @@ import de.jottyfan.minecraft.quickiefabric.event.EventBlockBreak;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import de.jottyfan.minecraft.quickiefabric.loot.LootHelper;
import de.jottyfan.minecraft.quickiefabric.tools.QuickieTools;
import de.jottyfan.minecraft.quickiefabric.world.gen.feature.SulforpadFeature;
import de.jottyfan.minecraft.quickiefabric.world.gen.feature.SulforpadFeatureConfig;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
import net.fabricmc.fabric.api.biome.v1.ModificationPhase;
@ -40,15 +44,22 @@ import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.text.Text;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.feature.ConfiguredFeature;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.PlacedFeature;
import net.minecraft.world.gen.placementmodifier.SquarePlacementModifier;
/**
*
@ -300,6 +311,19 @@ public class RegistryManager {
// Nether features
BiomeModifications.create(new Identifier(QUICKIEFABRIC, "nether_features")).add(ModificationPhase.ADDITIONS,
BiomeSelectors.foundInTheNether(), FeaturesManager.netherOres());
// Sulforpad feature
Identifier SULFORPAD_FEATURE_ID = new Identifier(QUICKIEFABRIC, "sulforpad_feature");
Feature<SulforpadFeatureConfig> SULFORPAD_FEATURE = new SulforpadFeature(SulforpadFeatureConfig.CODEC);
ConfiguredFeature<SulforpadFeatureConfig, SulforpadFeature> SULFORPAD_FEATURE_CONFIGURED = new ConfiguredFeature<>(
(SulforpadFeature) SULFORPAD_FEATURE,
new SulforpadFeatureConfig(new Identifier(QUICKIEFABRIC, "sulforpad")));
PlacedFeature SULFORPAD_FEATURE_PLACED = new PlacedFeature(RegistryEntry.of(SULFORPAD_FEATURE_CONFIGURED), List.of(SquarePlacementModifier.of()));
// Registries.register(RegistryKeys.FEATURE, SULFORPAD_FEATURE_ID, SULFORPAD_FEATURE);
// Registries.register(RegistryKeys.CONFIGURED_FEATURE, SULFORPAD_FEATURE_ID, SULFORPAD_FEATURE_CONFIGURED);
// Registries.register(RegistryKeys.PLACED_FEATURE, SULFORPAD_FEATURE_ID, SULFORPAD_FEATURE_PLACED);
// BiomeModifications.addFeature(BiomeSelectors.foundInTheNether(),GenerationStep.Feature.VEGETAL_DECORATION,
// RegistryKey.of(RegistryKeys.PLACED_FEATURE, SULFORPAD_FEATURE_ID));
}
public static final void registerLootings() {

View File

@ -0,0 +1,42 @@
package de.jottyfan.minecraft.quickiefabric.world.gen.feature;
import com.mojang.serialization.Codec;
import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.util.FeatureContext;
/**
*
* @author jotty
*
*/
public class SulforpadFeature extends Feature<SulforpadFeatureConfig> {
public SulforpadFeature(Codec<SulforpadFeatureConfig> configCodec) {
super(configCodec);
}
@Override
public boolean generate(FeatureContext<SulforpadFeatureConfig> context) {
StructureWorldAccess world = context.getWorld();
BlockPos pos = context.getOrigin();
BlockState blockState = QuickieBlocks.SULFORPAD.getDefaultState();
BlockPos currentPos = new BlockPos(pos);
for (int y = 0; y < world.getHeight(); y++) {
currentPos = currentPos.up();
if (world.getBlockState(currentPos).isOf(Blocks.LAVA)) {
if (world.getBlockState(currentPos.up()).isAir()) {
world.setBlockState(currentPos.up(), blockState, 0x10);
currentPos = currentPos.up();
return true;
}
}
}
return false;
}
}

View File

@ -0,0 +1,19 @@
package de.jottyfan.minecraft.quickiefabric.world.gen.feature;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.util.Identifier;
import net.minecraft.world.gen.feature.FeatureConfig;
/**
*
* @author jotty
*
*/
public record SulforpadFeatureConfig(Identifier blockId) implements FeatureConfig {
public static Codec<SulforpadFeatureConfig> CODEC = RecordCodecBuilder
.create(o -> o.group(Identifier.CODEC.fieldOf("blockID").forGetter(SulforpadFeatureConfig::blockId)).apply(o,
SulforpadFeatureConfig::new));
}

View File

@ -26,8 +26,8 @@
"quickiefabric.mixins.json"
],
"depends": {
"fabricloader": ">=0.15.0",
"minecraft": "~1.20.3",
"fabricloader": ">=0.15.1",
"minecraft": "~1.20.4",
"java": ">=17",
"fabric-api": "*"
},