first 1.20.4 version
This commit is contained in:
@ -4,17 +4,17 @@
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/develop
|
# check these on https://fabricmc.net/develop
|
||||||
minecraft_version=1.20.3
|
minecraft_version=1.20.4
|
||||||
yarn_mappings=1.20.3+build.1
|
yarn_mappings=1.20.4+build.1
|
||||||
loader_version=0.15.0
|
loader_version=0.15.1
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.20.3.5
|
mod_version = 1.20.4.0
|
||||||
maven_group = de.jottyfan.minecraft
|
maven_group = de.jottyfan.minecraft
|
||||||
archives_base_name = quickiefabric
|
archives_base_name = quickiefabric
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.91.1+1.20.3
|
fabric_version=0.91.2+1.20.4
|
||||||
|
|
||||||
# for ExtendedLeavesBlock
|
# for ExtendedLeavesBlock
|
||||||
terraform_wood_api_version=9.0.0-alpha.3
|
terraform_wood_api_version=9.0.0-alpha.3
|
||||||
|
@ -12,17 +12,22 @@ import net.minecraft.block.Block;
|
|||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.block.CropBlock;
|
import net.minecraft.block.CropBlock;
|
||||||
|
import net.minecraft.block.IceBlock;
|
||||||
import net.minecraft.block.ShapeContext;
|
import net.minecraft.block.ShapeContext;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
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.ItemConvertible;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.ItemScatterer;
|
import net.minecraft.util.ItemScatterer;
|
||||||
import net.minecraft.util.collection.DefaultedList;
|
import net.minecraft.util.collection.DefaultedList;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.random.Random;
|
||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@ -56,7 +61,8 @@ public class BlockSulforpad extends CropBlock {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) {
|
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
|
@Override
|
||||||
|
@ -61,4 +61,5 @@ public class FeaturesManager {
|
|||||||
bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR);
|
bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package de.jottyfan.minecraft.quickiefabric.init;
|
package de.jottyfan.minecraft.quickiefabric.init;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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.items.QuickieItems;
|
||||||
import de.jottyfan.minecraft.quickiefabric.loot.LootHelper;
|
import de.jottyfan.minecraft.quickiefabric.loot.LootHelper;
|
||||||
import de.jottyfan.minecraft.quickiefabric.tools.QuickieTools;
|
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.BiomeModifications;
|
||||||
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
|
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
|
||||||
import net.fabricmc.fabric.api.biome.v1.ModificationPhase;
|
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.Item;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.registry.BuiltinRegistries;
|
||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
import net.minecraft.registry.tag.TagKey;
|
import net.minecraft.registry.tag.TagKey;
|
||||||
import net.minecraft.screen.ScreenHandlerType;
|
import net.minecraft.screen.ScreenHandlerType;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Identifier;
|
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
|
// Nether features
|
||||||
BiomeModifications.create(new Identifier(QUICKIEFABRIC, "nether_features")).add(ModificationPhase.ADDITIONS,
|
BiomeModifications.create(new Identifier(QUICKIEFABRIC, "nether_features")).add(ModificationPhase.ADDITIONS,
|
||||||
BiomeSelectors.foundInTheNether(), FeaturesManager.netherOres());
|
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() {
|
public static final void registerLootings() {
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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));
|
||||||
|
|
||||||
|
}
|
@ -26,8 +26,8 @@
|
|||||||
"quickiefabric.mixins.json"
|
"quickiefabric.mixins.json"
|
||||||
],
|
],
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.15.0",
|
"fabricloader": ">=0.15.1",
|
||||||
"minecraft": "~1.20.3",
|
"minecraft": "~1.20.4",
|
||||||
"java": ">=17",
|
"java": ">=17",
|
||||||
"fabric-api": "*"
|
"fabric-api": "*"
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user