Correction texture diamond shard ore
@@ -0,0 +1,85 @@
|
||||
package net.mcreator.customoregen;
|
||||
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
||||
import net.minecraftforge.network.simple.SimpleChannel;
|
||||
import net.minecraftforge.network.NetworkRegistry;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
import net.minecraftforge.fml.util.thread.SidedThreadGroups;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
|
||||
import net.mcreator.customoregen.init.CustomOreGenModTabs;
|
||||
import net.mcreator.customoregen.init.CustomOreGenModItems;
|
||||
import net.mcreator.customoregen.init.CustomOreGenModBlocks;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.AbstractMap;
|
||||
|
||||
@Mod("custom_ore_gen")
|
||||
public class CustomOreGenMod {
|
||||
public static final Logger LOGGER = LogManager.getLogger(CustomOreGenMod.class);
|
||||
public static final String MODID = "custom_ore_gen";
|
||||
|
||||
public CustomOreGenMod() {
|
||||
// Start of user code block mod constructor
|
||||
// End of user code block mod constructor
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
|
||||
CustomOreGenModBlocks.REGISTRY.register(bus);
|
||||
|
||||
CustomOreGenModItems.REGISTRY.register(bus);
|
||||
|
||||
CustomOreGenModTabs.REGISTRY.register(bus);
|
||||
|
||||
// Start of user code block mod init
|
||||
// End of user code block mod init
|
||||
}
|
||||
|
||||
// Start of user code block mod methods
|
||||
// End of user code block mod methods
|
||||
private static final String PROTOCOL_VERSION = "1";
|
||||
public static final SimpleChannel PACKET_HANDLER = NetworkRegistry.newSimpleChannel(new ResourceLocation(MODID, MODID), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals);
|
||||
private static int messageID = 0;
|
||||
|
||||
public static <T> void addNetworkMessage(Class<T> messageType, BiConsumer<T, FriendlyByteBuf> encoder, Function<FriendlyByteBuf, T> decoder, BiConsumer<T, Supplier<NetworkEvent.Context>> messageConsumer) {
|
||||
PACKET_HANDLER.registerMessage(messageID, messageType, encoder, decoder, messageConsumer);
|
||||
messageID++;
|
||||
}
|
||||
|
||||
private static final Collection<AbstractMap.SimpleEntry<Runnable, Integer>> workQueue = new ConcurrentLinkedQueue<>();
|
||||
|
||||
public static void queueServerWork(int tick, Runnable action) {
|
||||
if (Thread.currentThread().getThreadGroup() == SidedThreadGroups.SERVER)
|
||||
workQueue.add(new AbstractMap.SimpleEntry<>(action, tick));
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void tick(TickEvent.ServerTickEvent event) {
|
||||
if (event.phase == TickEvent.Phase.END) {
|
||||
List<AbstractMap.SimpleEntry<Runnable, Integer>> actions = new ArrayList<>();
|
||||
workQueue.forEach(work -> {
|
||||
work.setValue(work.getValue() - 1);
|
||||
if (work.getValue() == 0)
|
||||
actions.add(work);
|
||||
});
|
||||
actions.forEach(e -> e.getKey().run());
|
||||
workQueue.removeAll(actions);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class ConcentratedcoaloreBlock extends Block {
|
||||
public ConcentratedcoaloreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 15f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.phys.HitResult;
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
import net.mcreator.customoregen.init.CustomOreGenModBlocks;
|
||||
|
||||
public class ConcentrateddiamondoreBlock extends Block {
|
||||
public ConcentrateddiamondoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 11f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) {
|
||||
return new ItemStack(CustomOreGenModBlocks.CONCENTRATEDDIAMONDORE.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class CopperhighoreBlock extends Block {
|
||||
public CopperhighoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.GRAVEL).strength(1f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class CopperloweroreBlock extends Block {
|
||||
public CopperloweroreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(4.5f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class DeepslateironoreBlock extends Block {
|
||||
public DeepslateironoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class DeepslatelapisoreBlock extends Block {
|
||||
public DeepslatelapisoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(4.5f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class DeepslatepuregoldenoreBlock extends Block {
|
||||
public DeepslatepuregoldenoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import org.checkerframework.checker.units.qual.s;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class DeepslateredstoneoreBlock extends Block {
|
||||
public DeepslateredstoneoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).lightLevel(s -> 1).requiresCorrectToolForDrops().hasPostProcess((bs, br, bp) -> true).emissiveRendering((bs, br, bp) -> true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class DeepslatesharddiamondoreBlock extends Block {
|
||||
public DeepslatesharddiamondoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 14.5f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class HighemeraldoreBlock extends Block {
|
||||
public HighemeraldoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class IronoreBlock extends Block {
|
||||
public IronoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(2f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class LapisoreBlock extends Block {
|
||||
public LapisoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class LoweremeraldoreBlock extends Block {
|
||||
public LoweremeraldoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(4.5f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class PuregoldenoreBlock extends Block {
|
||||
public PuregoldenoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import org.checkerframework.checker.units.qual.s;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class RedstoneoreBlock extends Block {
|
||||
public RedstoneoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(3f, 10f).lightLevel(s -> 1).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
package net.mcreator.customoregen.block;
|
||||
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.customoregen.procedures.OreexperienceProcedure;
|
||||
|
||||
public class SharddiamondblockoreBlock extends Block {
|
||||
public SharddiamondblockoreBlock() {
|
||||
super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(1.3f, 10f).requiresCorrectToolForDrops());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||
return 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onDestroyedByPlayer(BlockState blockstate, Level world, BlockPos pos, Player entity, boolean willHarvest, FluidState fluid) {
|
||||
boolean retval = super.onDestroyedByPlayer(blockstate, world, pos, entity, willHarvest, fluid);
|
||||
OreexperienceProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package net.mcreator.customoregen.config;
|
||||
|
||||
import net.minecraftforge.fml.ModList;
|
||||
|
||||
public class ConfigHelper {
|
||||
// Helper method to safely access config values
|
||||
public static boolean isFeatureEnabled(String featureName) {
|
||||
switch (featureName) {
|
||||
case "shardDiamondTools":
|
||||
return ModConfigs.FEATURES.enableShardDiamondTools.get();
|
||||
case "shardDiamondOre":
|
||||
return ModConfigs.FEATURES.enableShardDiamondOre.get();
|
||||
case "concentratedOres":
|
||||
return ModConfigs.FEATURES.enableConcentratedOres.get();
|
||||
case "impureOres":
|
||||
return ModConfigs.FEATURES.enableImpureOres.get();
|
||||
case "ashCoalOre":
|
||||
return ModConfigs.FEATURES.enableAshCoalOre.get();
|
||||
case "pureGoldenOre":
|
||||
return ModConfigs.FEATURES.enablePureGoldenOre.get();
|
||||
case "customEmeraldOres":
|
||||
return ModConfigs.FEATURES.enableCustomEmeraldOres.get();
|
||||
case "customCopperOres":
|
||||
return ModConfigs.FEATURES.enableCustomCopperOres.get();
|
||||
case "vanillaOreVariants":
|
||||
return ModConfigs.FEATURES.enableVanillaOreVariants.get();
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getShardDiamondToolDurability(String toolType) {
|
||||
switch (toolType) {
|
||||
case "pickaxe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondPickaxeDurability.get();
|
||||
case "axe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondAxeDurability.get();
|
||||
case "shovel":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondShovelDurability.get();
|
||||
default:
|
||||
return 200;
|
||||
}
|
||||
}
|
||||
|
||||
public static float getShardDiamondToolSpeed(String toolType) {
|
||||
switch (toolType) {
|
||||
case "pickaxe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondPickaxeSpeed.get().floatValue();
|
||||
case "axe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondAxeSpeed.get().floatValue();
|
||||
case "shovel":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondShovelSpeed.get().floatValue();
|
||||
default:
|
||||
return 7.0f;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getShardDiamondToolDamage(String toolType) {
|
||||
switch (toolType) {
|
||||
case "pickaxe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondPickaxeAttackDamage.get();
|
||||
case "axe":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondAxeAttackDamage.get();
|
||||
case "shovel":
|
||||
return ModConfigs.TOOL_STATS.shardDiamondShovelAttackDamage.get();
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,330 @@
|
||||
package net.mcreator.customoregen.config;
|
||||
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
|
||||
public class ModConfigs {
|
||||
public static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
|
||||
public static final ForgeConfigSpec SPEC;
|
||||
|
||||
public static final OreGenConfig ORE_GEN;
|
||||
public static final ToolStatsConfig TOOL_STATS;
|
||||
public static final DropsConfig DROPS;
|
||||
public static final FeatureToggleConfig FEATURES;
|
||||
|
||||
static {
|
||||
BUILDER.push("Custom Ore Gem Configuration");
|
||||
|
||||
ORE_GEN = new OreGenConfig(BUILDER);
|
||||
TOOL_STATS = new ToolStatsConfig(BUILDER);
|
||||
DROPS = new DropsConfig(BUILDER);
|
||||
FEATURES = new FeatureToggleConfig(BUILDER);
|
||||
|
||||
BUILDER.pop();
|
||||
SPEC = BUILDER.build();
|
||||
}
|
||||
|
||||
// Configuration pour la génération des minerais
|
||||
public static class OreGenConfig {
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreMinHeight;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreMaxHeight;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreSize;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedDiamondOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedDiamondOreSize;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> pureGoldenOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> pureGoldenOreMinHeight;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> pureGoldenOreMaxHeight;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedCoalOreCount;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureIronOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureGoldOreCount;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> highEmeraldOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> lowerEmeraldOreCount;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> highCopperOreCount;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> lowerCopperOreCount;
|
||||
|
||||
public OreGenConfig(ForgeConfigSpec.Builder builder) {
|
||||
builder.push("ore_generation");
|
||||
|
||||
builder.push("shard_diamond_ore");
|
||||
shardDiamondOreMinHeight = builder
|
||||
.comment("Minimum height for Shard Diamond Ore generation (default: 0)")
|
||||
.defineInRange("minHeight", 0, -64, 320);
|
||||
shardDiamondOreMaxHeight = builder
|
||||
.comment("Maximum height for Shard Diamond Ore generation (default: 15)")
|
||||
.defineInRange("maxHeight", 15, -64, 320);
|
||||
shardDiamondOreCount = builder
|
||||
.comment("Number of Shard Diamond Ore veins per chunk (default: 1)")
|
||||
.defineInRange("veinsPerChunk", 1, 0, 20);
|
||||
shardDiamondOreSize = builder
|
||||
.comment("Size of Shard Diamond Ore veins (default: 8)")
|
||||
.defineInRange("veinSize", 8, 1, 32);
|
||||
builder.pop();
|
||||
|
||||
builder.push("concentrated_diamond_ore");
|
||||
concentratedDiamondOreCount = builder
|
||||
.comment("Number of Concentrated Diamond Ore veins per chunk (default: 1)")
|
||||
.defineInRange("veinsPerChunk", 1, 0, 20);
|
||||
concentratedDiamondOreSize = builder
|
||||
.comment("Size of Concentrated Diamond Ore veins (default: 8)")
|
||||
.defineInRange("veinSize", 8, 1, 32);
|
||||
builder.pop();
|
||||
|
||||
builder.push("pure_golden_ore");
|
||||
pureGoldenOreCount = builder
|
||||
.comment("Number of Pure Golden Ore veins per chunk (default: 4)")
|
||||
.defineInRange("veinsPerChunk", 4, 0, 20);
|
||||
pureGoldenOreMinHeight = builder
|
||||
.comment("Minimum height for Pure Golden Ore generation (default: 0)")
|
||||
.defineInRange("minHeight", 0, -64, 320);
|
||||
pureGoldenOreMaxHeight = builder
|
||||
.comment("Maximum height for Pure Golden Ore generation (default: 256)")
|
||||
.defineInRange("maxHeight", 256, -64, 320);
|
||||
builder.pop();
|
||||
|
||||
builder.push("concentrated_coal_ore");
|
||||
concentratedCoalOreCount = builder
|
||||
.comment("Number of Concentrated Coal Ore veins per chunk (default: 2)")
|
||||
.defineInRange("veinsPerChunk", 2, 0, 20);
|
||||
builder.pop();
|
||||
|
||||
builder.push("impure_ores");
|
||||
impureIronOreCount = builder
|
||||
.comment("Number of Impure Iron Ore veins per chunk (default: 2)")
|
||||
.defineInRange("ironVeinsPerChunk", 2, 0, 20);
|
||||
impureGoldOreCount = builder
|
||||
.comment("Number of Impure Gold Ore veins per chunk (default: 2)")
|
||||
.defineInRange("goldVeinsPerChunk", 2, 0, 20);
|
||||
builder.pop();
|
||||
|
||||
builder.push("emerald_ores");
|
||||
highEmeraldOreCount = builder
|
||||
.comment("Number of High Emerald Ore veins per chunk (default: 1)")
|
||||
.defineInRange("highVeinsPerChunk", 1, 0, 20);
|
||||
lowerEmeraldOreCount = builder
|
||||
.comment("Number of Lower Emerald Ore veins per chunk (default: 1)")
|
||||
.defineInRange("lowerVeinsPerChunk", 1, 0, 20);
|
||||
builder.pop();
|
||||
|
||||
builder.push("copper_ores");
|
||||
highCopperOreCount = builder
|
||||
.comment("Number of High Copper Ore veins per chunk (default: 2)")
|
||||
.defineInRange("highVeinsPerChunk", 2, 0, 20);
|
||||
lowerCopperOreCount = builder
|
||||
.comment("Number of Lower Copper Ore veins per chunk (default: 2)")
|
||||
.defineInRange("lowerVeinsPerChunk", 2, 0, 20);
|
||||
builder.pop();
|
||||
|
||||
builder.pop();
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration pour les stats des outils
|
||||
public static class ToolStatsConfig {
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondPickaxeDurability;
|
||||
public final ForgeConfigSpec.DoubleValue shardDiamondPickaxeSpeed;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondPickaxeAttackDamage;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondAxeDurability;
|
||||
public final ForgeConfigSpec.DoubleValue shardDiamondAxeSpeed;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondAxeAttackDamage;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondShovelDurability;
|
||||
public final ForgeConfigSpec.DoubleValue shardDiamondShovelSpeed;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondShovelAttackDamage;
|
||||
|
||||
public ToolStatsConfig(ForgeConfigSpec.Builder builder) {
|
||||
builder.push("tool_stats");
|
||||
|
||||
builder.push("shard_diamond_tools");
|
||||
shardDiamondPickaxeDurability = builder
|
||||
.comment("Durability of Shard Diamond Pickaxe (default: 200)")
|
||||
.defineInRange("pickaxeDurability", 200, 1, 5000);
|
||||
shardDiamondPickaxeSpeed = builder
|
||||
.comment("Mining speed of Shard Diamond Pickaxe (default: 7.0)")
|
||||
.defineInRange("pickaxeSpeed", 7.0, 0.1, 20.0);
|
||||
shardDiamondPickaxeAttackDamage = builder
|
||||
.comment("Attack damage of Shard Diamond Pickaxe (default: 1)")
|
||||
.defineInRange("pickaxeAttackDamage", 1, 0, 20);
|
||||
|
||||
shardDiamondAxeDurability = builder
|
||||
.comment("Durability of Shard Diamond Axe (default: 200)")
|
||||
.defineInRange("axeDurability", 200, 1, 5000);
|
||||
shardDiamondAxeSpeed = builder
|
||||
.comment("Mining speed of Shard Diamond Axe (default: 7.0)")
|
||||
.defineInRange("axeSpeed", 7.0, 0.1, 20.0);
|
||||
shardDiamondAxeAttackDamage = builder
|
||||
.comment("Attack damage of Shard Diamond Axe (default: 6)")
|
||||
.defineInRange("axeAttackDamage", 6, 0, 20);
|
||||
|
||||
shardDiamondShovelDurability = builder
|
||||
.comment("Durability of Shard Diamond Shovel (default: 200)")
|
||||
.defineInRange("shovelDurability", 200, 1, 5000);
|
||||
shardDiamondShovelSpeed = builder
|
||||
.comment("Mining speed of Shard Diamond Shovel (default: 4.0)")
|
||||
.defineInRange("shovelSpeed", 4.0, 0.1, 20.0);
|
||||
shardDiamondShovelAttackDamage = builder
|
||||
.comment("Attack damage of Shard Diamond Shovel (default: 2)")
|
||||
.defineInRange("shovelAttackDamage", 2, 0, 20);
|
||||
builder.pop();
|
||||
|
||||
builder.pop();
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration pour les drops des minerais
|
||||
public static class DropsConfig {
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> shardDiamondOreMaxDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> shardDiamondOreEnableFortune;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedDiamondOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedDiamondOreMaxDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> concentratedDiamondOreEnableFortune;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedCoalOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> concentratedCoalOreMaxDrops;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> pureGoldenOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> pureGoldenOreMaxDrops;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> ashCoalOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> ashCoalOreMaxDrops;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureIronOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureIronOreMaxDrops;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureGoldOreMinDrops;
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> impureGoldOreMaxDrops;
|
||||
|
||||
public final ForgeConfigSpec.ConfigValue<Integer> oreExperienceDrops;
|
||||
|
||||
public DropsConfig(ForgeConfigSpec.Builder builder) {
|
||||
builder.push("drops");
|
||||
|
||||
builder.push("shard_diamond_ore");
|
||||
shardDiamondOreMinDrops = builder
|
||||
.comment("Minimum shards dropped by Shard Diamond Ore (default: 1)")
|
||||
.defineInRange("minDrops", 1, 0, 64);
|
||||
shardDiamondOreMaxDrops = builder
|
||||
.comment("Maximum shards dropped by Shard Diamond Ore (default: 2)")
|
||||
.defineInRange("maxDrops", 2, 0, 64);
|
||||
shardDiamondOreEnableFortune = builder
|
||||
.comment("Enable Fortune enchantment on Shard Diamond Ore (default: true)")
|
||||
.define("enableFortune", true);
|
||||
builder.pop();
|
||||
|
||||
builder.push("concentrated_diamond_ore");
|
||||
concentratedDiamondOreMinDrops = builder
|
||||
.comment("Minimum diamonds dropped by Concentrated Diamond Ore (default: 1)")
|
||||
.defineInRange("minDrops", 1, 0, 64);
|
||||
concentratedDiamondOreMaxDrops = builder
|
||||
.comment("Maximum diamonds dropped by Concentrated Diamond Ore (default: 2)")
|
||||
.defineInRange("maxDrops", 2, 0, 64);
|
||||
concentratedDiamondOreEnableFortune = builder
|
||||
.comment("Enable Fortune enchantment on Concentrated Diamond Ore (default: true)")
|
||||
.define("enableFortune", true);
|
||||
builder.pop();
|
||||
|
||||
builder.push("concentrated_coal_ore");
|
||||
concentratedCoalOreMinDrops = builder
|
||||
.comment("Minimum coal dropped by Concentrated Coal Ore (default: 2)")
|
||||
.defineInRange("minDrops", 2, 0, 64);
|
||||
concentratedCoalOreMaxDrops = builder
|
||||
.comment("Maximum coal dropped by Concentrated Coal Ore (default: 4)")
|
||||
.defineInRange("maxDrops", 4, 0, 64);
|
||||
builder.pop();
|
||||
|
||||
builder.push("pure_golden_ore");
|
||||
pureGoldenOreMinDrops = builder
|
||||
.comment("Minimum gold nuggets dropped by Pure Golden Ore (default: 2)")
|
||||
.defineInRange("minDrops", 2, 0, 64);
|
||||
pureGoldenOreMaxDrops = builder
|
||||
.comment("Maximum gold nuggets dropped by Pure Golden Ore (default: 4)")
|
||||
.defineInRange("maxDrops", 4, 0, 64);
|
||||
builder.pop();
|
||||
|
||||
builder.push("ash_coal_ore");
|
||||
ashCoalOreMinDrops = builder
|
||||
.comment("Minimum ash coal dropped by Ash Coal Ore (default: 1)")
|
||||
.defineInRange("minDrops", 1, 0, 64);
|
||||
ashCoalOreMaxDrops = builder
|
||||
.comment("Maximum ash coal dropped by Ash Coal Ore (default: 2)")
|
||||
.defineInRange("maxDrops", 2, 0, 64);
|
||||
builder.pop();
|
||||
|
||||
builder.push("impure_ores");
|
||||
impureIronOreMinDrops = builder
|
||||
.comment("Minimum impure iron dropped by Impure Iron Ore (default: 1)")
|
||||
.defineInRange("ironMinDrops", 1, 0, 64);
|
||||
impureIronOreMaxDrops = builder
|
||||
.comment("Maximum impure iron dropped by Impure Iron Ore (default: 2)")
|
||||
.defineInRange("ironMaxDrops", 2, 0, 64);
|
||||
impureGoldOreMinDrops = builder
|
||||
.comment("Minimum impure gold dropped by Impure Gold Ore (default: 1)")
|
||||
.defineInRange("goldMinDrops", 1, 0, 64);
|
||||
impureGoldOreMaxDrops = builder
|
||||
.comment("Maximum impure gold dropped by Impure Gold Ore (default: 2)")
|
||||
.defineInRange("goldMaxDrops", 2, 0, 64);
|
||||
builder.pop();
|
||||
|
||||
oreExperienceDrops = builder
|
||||
.comment("Experience dropped when mining custom ores (default: 2)")
|
||||
.defineInRange("oreExperience", 2, 0, 100);
|
||||
|
||||
builder.pop();
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration pour activer/désactiver les fonctionnalités
|
||||
public static class FeatureToggleConfig {
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableShardDiamondTools;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableShardDiamondOre;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableConcentratedOres;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableImpureOres;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableAshCoalOre;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enablePureGoldenOre;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableCustomEmeraldOres;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableCustomCopperOres;
|
||||
public final ForgeConfigSpec.ConfigValue<Boolean> enableVanillaOreVariants;
|
||||
|
||||
public FeatureToggleConfig(ForgeConfigSpec.Builder builder) {
|
||||
builder.push("features");
|
||||
|
||||
enableShardDiamondTools = builder
|
||||
.comment("Enable Shard Diamond Tools (default: true)")
|
||||
.define("enableShardDiamondTools", true);
|
||||
enableShardDiamondOre = builder
|
||||
.comment("Enable Shard Diamond Ore generation (default: true)")
|
||||
.define("enableShardDiamondOre", true);
|
||||
enableConcentratedOres = builder
|
||||
.comment("Enable Concentrated Ores (Diamond, Coal) (default: true)")
|
||||
.define("enableConcentratedOres", true);
|
||||
enableImpureOres = builder
|
||||
.comment("Enable Impure Ores (Iron, Gold) (default: true)")
|
||||
.define("enableImpureOres", true);
|
||||
enableAshCoalOre = builder
|
||||
.comment("Enable Ash Coal Ore (default: true)")
|
||||
.define("enableAshCoalOre", true);
|
||||
enablePureGoldenOre = builder
|
||||
.comment("Enable Pure Golden Ore (default: true)")
|
||||
.define("enablePureGoldenOre", true);
|
||||
enableCustomEmeraldOres = builder
|
||||
.comment("Enable Custom Emerald Ores (High, Lower) (default: true)")
|
||||
.define("enableCustomEmeraldOres", true);
|
||||
enableCustomCopperOres = builder
|
||||
.comment("Enable Custom Copper Ores (High, Lower) (default: true)")
|
||||
.define("enableCustomCopperOres", true);
|
||||
enableVanillaOreVariants = builder
|
||||
.comment("Enable Vanilla Ore variants (Iron, Redstone, Lapis, etc.) (default: true)")
|
||||
.define("enableVanillaOreVariants", true);
|
||||
|
||||
builder.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
/*
|
||||
* MCreator note: This file will be REGENERATED on each build.
|
||||
*/
|
||||
package net.mcreator.customoregen.init;
|
||||
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
import net.mcreator.customoregen.block.SharddiamondblockoreBlock;
|
||||
import net.mcreator.customoregen.block.RedstoneoreBlock;
|
||||
import net.mcreator.customoregen.block.PuregoldenoreBlock;
|
||||
import net.mcreator.customoregen.block.LoweremeraldoreBlock;
|
||||
import net.mcreator.customoregen.block.LapisoreBlock;
|
||||
import net.mcreator.customoregen.block.IronoreBlock;
|
||||
import net.mcreator.customoregen.block.HighemeraldoreBlock;
|
||||
import net.mcreator.customoregen.block.DeepslatesharddiamondoreBlock;
|
||||
import net.mcreator.customoregen.block.DeepslateredstoneoreBlock;
|
||||
import net.mcreator.customoregen.block.DeepslatepuregoldenoreBlock;
|
||||
import net.mcreator.customoregen.block.DeepslatelapisoreBlock;
|
||||
import net.mcreator.customoregen.block.DeepslateironoreBlock;
|
||||
import net.mcreator.customoregen.block.CopperloweroreBlock;
|
||||
import net.mcreator.customoregen.block.CopperhighoreBlock;
|
||||
import net.mcreator.customoregen.block.ConcentrateddiamondoreBlock;
|
||||
import net.mcreator.customoregen.block.ConcentratedcoaloreBlock;
|
||||
import net.mcreator.customoregen.CustomOreGenMod;
|
||||
|
||||
public class CustomOreGenModBlocks {
|
||||
public static final DeferredRegister<Block> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, CustomOreGenMod.MODID);
|
||||
public static final RegistryObject<Block> SHARDDIAMONDBLOCKORE = REGISTRY.register("sharddiamondblockore", () -> new SharddiamondblockoreBlock());
|
||||
public static final RegistryObject<Block> PUREGOLDENORE = REGISTRY.register("puregoldenore", () -> new PuregoldenoreBlock());
|
||||
public static final RegistryObject<Block> DEEPSLATEPUREGOLDENORE = REGISTRY.register("deepslatepuregoldenore", () -> new DeepslatepuregoldenoreBlock());
|
||||
public static final RegistryObject<Block> CONCENTRATEDCOALORE = REGISTRY.register("concentratedcoalore", () -> new ConcentratedcoaloreBlock());
|
||||
public static final RegistryObject<Block> DEEPSLATESHARDDIAMONDORE = REGISTRY.register("deepslatesharddiamondore", () -> new DeepslatesharddiamondoreBlock());
|
||||
public static final RegistryObject<Block> CONCENTRATEDDIAMONDORE = REGISTRY.register("concentrateddiamondore", () -> new ConcentrateddiamondoreBlock());
|
||||
public static final RegistryObject<Block> LAPISORE = REGISTRY.register("lapisore", () -> new LapisoreBlock());
|
||||
public static final RegistryObject<Block> DEEPSLATELAPISORE = REGISTRY.register("deepslatelapisore", () -> new DeepslatelapisoreBlock());
|
||||
public static final RegistryObject<Block> REDSTONEORE = REGISTRY.register("redstoneore", () -> new RedstoneoreBlock());
|
||||
public static final RegistryObject<Block> DEEPSLATEREDSTONEORE = REGISTRY.register("deepslateredstoneore", () -> new DeepslateredstoneoreBlock());
|
||||
public static final RegistryObject<Block> COPPERHIGHORE = REGISTRY.register("copperhighore", () -> new CopperhighoreBlock());
|
||||
public static final RegistryObject<Block> COPPERLOWERORE = REGISTRY.register("copperlowerore", () -> new CopperloweroreBlock());
|
||||
public static final RegistryObject<Block> HIGHEMERALDORE = REGISTRY.register("highemeraldore", () -> new HighemeraldoreBlock());
|
||||
public static final RegistryObject<Block> LOWEREMERALDORE = REGISTRY.register("loweremeraldore", () -> new LoweremeraldoreBlock());
|
||||
public static final RegistryObject<Block> IRONORE = REGISTRY.register("ironore", () -> new IronoreBlock());
|
||||
public static final RegistryObject<Block> DEEPSLATEIRONORE = REGISTRY.register("deepslateironore", () -> new DeepslateironoreBlock());
|
||||
// Start of user code block custom blocks
|
||||
// End of user code block custom blocks
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
/*
|
||||
* MCreator note: This file will be REGENERATED on each build.
|
||||
*/
|
||||
package net.mcreator.customoregen.init;
|
||||
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
|
||||
import net.mcreator.customoregen.item.SharddiamondshovelItem;
|
||||
import net.mcreator.customoregen.item.SharddiamondpickaxeItem;
|
||||
import net.mcreator.customoregen.item.SharddiamondaxeItem;
|
||||
import net.mcreator.customoregen.item.DiamondshardItem;
|
||||
import net.mcreator.customoregen.CustomOreGenMod;
|
||||
|
||||
public class CustomOreGenModItems {
|
||||
public static final DeferredRegister<Item> REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, CustomOreGenMod.MODID);
|
||||
public static final RegistryObject<Item> DIAMONDSHARD = REGISTRY.register("diamondshard", () -> new DiamondshardItem());
|
||||
public static final RegistryObject<Item> SHARDDIAMONDBLOCKORE = block(CustomOreGenModBlocks.SHARDDIAMONDBLOCKORE);
|
||||
public static final RegistryObject<Item> PUREGOLDENORE = block(CustomOreGenModBlocks.PUREGOLDENORE);
|
||||
public static final RegistryObject<Item> DEEPSLATEPUREGOLDENORE = block(CustomOreGenModBlocks.DEEPSLATEPUREGOLDENORE);
|
||||
public static final RegistryObject<Item> CONCENTRATEDCOALORE = block(CustomOreGenModBlocks.CONCENTRATEDCOALORE);
|
||||
public static final RegistryObject<Item> DEEPSLATESHARDDIAMONDORE = block(CustomOreGenModBlocks.DEEPSLATESHARDDIAMONDORE);
|
||||
public static final RegistryObject<Item> CONCENTRATEDDIAMONDORE = block(CustomOreGenModBlocks.CONCENTRATEDDIAMONDORE);
|
||||
public static final RegistryObject<Item> LAPISORE = block(CustomOreGenModBlocks.LAPISORE);
|
||||
public static final RegistryObject<Item> DEEPSLATELAPISORE = block(CustomOreGenModBlocks.DEEPSLATELAPISORE);
|
||||
public static final RegistryObject<Item> REDSTONEORE = block(CustomOreGenModBlocks.REDSTONEORE);
|
||||
public static final RegistryObject<Item> DEEPSLATEREDSTONEORE = block(CustomOreGenModBlocks.DEEPSLATEREDSTONEORE);
|
||||
public static final RegistryObject<Item> COPPERHIGHORE = block(CustomOreGenModBlocks.COPPERHIGHORE);
|
||||
public static final RegistryObject<Item> COPPERLOWERORE = block(CustomOreGenModBlocks.COPPERLOWERORE);
|
||||
public static final RegistryObject<Item> HIGHEMERALDORE = block(CustomOreGenModBlocks.HIGHEMERALDORE);
|
||||
public static final RegistryObject<Item> LOWEREMERALDORE = block(CustomOreGenModBlocks.LOWEREMERALDORE);
|
||||
public static final RegistryObject<Item> SHARDDIAMONDPICKAXE = REGISTRY.register("sharddiamondpickaxe", () -> new SharddiamondpickaxeItem());
|
||||
public static final RegistryObject<Item> SHARDDIAMONDSHOVEL = REGISTRY.register("sharddiamondshovel", () -> new SharddiamondshovelItem());
|
||||
public static final RegistryObject<Item> SHARDDIAMONDAXE = REGISTRY.register("sharddiamondaxe", () -> new SharddiamondaxeItem());
|
||||
public static final RegistryObject<Item> IRONORE = block(CustomOreGenModBlocks.IRONORE);
|
||||
public static final RegistryObject<Item> DEEPSLATEIRONORE = block(CustomOreGenModBlocks.DEEPSLATEIRONORE);
|
||||
|
||||
// Start of user code block custom items
|
||||
// End of user code block custom items
|
||||
private static RegistryObject<Item> block(RegistryObject<Block> block) {
|
||||
return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
/*
|
||||
* MCreator note: This file will be REGENERATED on each build.
|
||||
*/
|
||||
package net.mcreator.customoregen.init;
|
||||
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
|
||||
import net.minecraft.world.item.CreativeModeTabs;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
|
||||
import net.mcreator.customoregen.CustomOreGenMod;
|
||||
|
||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class CustomOreGenModTabs {
|
||||
public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, CustomOreGenMod.MODID);
|
||||
|
||||
@SubscribeEvent
|
||||
public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) {
|
||||
if (tabData.getTabKey() == CreativeModeTabs.INGREDIENTS) {
|
||||
tabData.accept(CustomOreGenModItems.DIAMONDSHARD.get());
|
||||
tabData.accept(CustomOreGenModBlocks.SHARDDIAMONDBLOCKORE.get().asItem());
|
||||
tabData.accept(CustomOreGenModBlocks.DEEPSLATESHARDDIAMONDORE.get().asItem());
|
||||
} else if (tabData.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) {
|
||||
tabData.accept(CustomOreGenModItems.SHARDDIAMONDPICKAXE.get());
|
||||
tabData.accept(CustomOreGenModItems.SHARDDIAMONDSHOVEL.get());
|
||||
tabData.accept(CustomOreGenModItems.SHARDDIAMONDAXE.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
package net.mcreator.customoregen.item;
|
||||
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DiamondshardItem extends Item {
|
||||
public DiamondshardItem() {
|
||||
super(new Item.Properties().stacksTo(64).rarity(Rarity.RARE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack itemstack, Level level, List<Component> list, TooltipFlag flag) {
|
||||
super.appendHoverText(itemstack, level, list, flag);
|
||||
list.add(Component.translatable("item.custom_ore_gen.diamondshard.description_0"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package net.mcreator.customoregen.item;
|
||||
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.AxeItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
import net.mcreator.customoregen.init.CustomOreGenModItems;
|
||||
|
||||
public class SharddiamondaxeItem extends AxeItem {
|
||||
public SharddiamondaxeItem() {
|
||||
super(new Tier() {
|
||||
public int getUses() {
|
||||
return 200;
|
||||
}
|
||||
|
||||
public float getSpeed() {
|
||||
return 7f;
|
||||
}
|
||||
|
||||
public float getAttackDamageBonus() {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
public int getEnchantmentValue() {
|
||||
return 9;
|
||||
}
|
||||
|
||||
public Ingredient getRepairIngredient() {
|
||||
return Ingredient.of(new ItemStack(CustomOreGenModItems.DIAMONDSHARD.get()));
|
||||
}
|
||||
}, 1, -3f, new Item.Properties());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
package net.mcreator.customoregen.item;
|
||||
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.item.PickaxeItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Item;
|
||||
|
||||
import net.mcreator.customoregen.init.CustomOreGenModItems;
|
||||
|
||||
public class SharddiamondpickaxeItem extends PickaxeItem {
|
||||
public SharddiamondpickaxeItem() {
|
||||
super(new Tier() {
|
||||
public int getUses() {
|
||||
return 200; // Hardcoded - config not loaded yet
|
||||
}
|
||||
|
||||
public float getSpeed() {
|
||||
return 7f;
|
||||
}
|
||||
|
||||
public float getAttackDamageBonus() {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
public int getEnchantmentValue() {
|
||||
return 9;
|
||||
}
|
||||
|
||||
public Ingredient getRepairIngredient() {
|
||||
return Ingredient.of(new ItemStack(CustomOreGenModItems.DIAMONDSHARD.get()));
|
||||
}
|
||||
}, 1, -3f, new Item.Properties());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
package net.mcreator.customoregen.item;
|
||||
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.item.ShovelItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Item;
|
||||
|
||||
import net.mcreator.customoregen.init.CustomOreGenModItems;
|
||||
|
||||
public class SharddiamondshovelItem extends ShovelItem {
|
||||
public SharddiamondshovelItem() {
|
||||
super(new Tier() {
|
||||
public int getUses() {
|
||||
return 200;
|
||||
}
|
||||
|
||||
public float getSpeed() {
|
||||
return 4f;
|
||||
}
|
||||
|
||||
public float getAttackDamageBonus() {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
public int getEnchantmentValue() {
|
||||
return 9;
|
||||
}
|
||||
|
||||
public Ingredient getRepairIngredient() {
|
||||
return Ingredient.of(new ItemStack(CustomOreGenModItems.DIAMONDSHARD.get()));
|
||||
}
|
||||
}, 1, -3f, new Item.Properties());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package net.mcreator.customoregen.procedures;
|
||||
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.storage.loot.LootParams;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.storage.loot.BuiltInLootTables;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.ExperienceOrb;
|
||||
|
||||
import net.mcreator.customoregen.config.ModConfigs;
|
||||
import net.mcreator.customoregen.init.CustomOreGenModItems;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ConfigurableOreDropsProcedure {
|
||||
|
||||
public static void execute(LevelAccessor world, double x, double y, double z, Entity entity, String oreType) {
|
||||
if (world.isClientSide())
|
||||
return;
|
||||
|
||||
Random random = new Random();
|
||||
int fortuneLevel = 0;
|
||||
boolean silkTouch = false;
|
||||
|
||||
// Get fortune and silk touch from the tool if mining by player
|
||||
if (entity instanceof Player) {
|
||||
Player player = (Player) entity;
|
||||
ItemStack mainHandItem = player.getMainHandItem();
|
||||
fortuneLevel = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BLOCK_FORTUNE, mainHandItem);
|
||||
silkTouch = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, mainHandItem) > 0;
|
||||
}
|
||||
|
||||
// If silk touch, drop the block itself and return
|
||||
if (silkTouch) {
|
||||
return; // Let vanilla handle silk touch
|
||||
}
|
||||
|
||||
int minDrops = 1;
|
||||
int maxDrops = 2;
|
||||
boolean enableFortune = true;
|
||||
ItemStack dropItem = ItemStack.EMPTY;
|
||||
|
||||
// Configure drops based on ore type
|
||||
switch (oreType) {
|
||||
case "shard_diamond":
|
||||
minDrops = ModConfigs.DROPS.shardDiamondOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.shardDiamondOreMaxDrops.get();
|
||||
enableFortune = ModConfigs.DROPS.shardDiamondOreEnableFortune.get();
|
||||
dropItem = new ItemStack(CustomOreGenModItems.DIAMONDSHARD.get());
|
||||
break;
|
||||
|
||||
case "concentrated_diamond":
|
||||
minDrops = ModConfigs.DROPS.concentratedDiamondOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.concentratedDiamondOreMaxDrops.get();
|
||||
enableFortune = ModConfigs.DROPS.concentratedDiamondOreEnableFortune.get();
|
||||
dropItem = new ItemStack(Items.DIAMOND);
|
||||
break;
|
||||
|
||||
case "concentrated_coal":
|
||||
minDrops = ModConfigs.DROPS.concentratedCoalOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.concentratedCoalOreMaxDrops.get();
|
||||
dropItem = new ItemStack(Items.COAL);
|
||||
break;
|
||||
|
||||
case "pure_golden":
|
||||
minDrops = ModConfigs.DROPS.pureGoldenOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.pureGoldenOreMaxDrops.get();
|
||||
dropItem = new ItemStack(Items.GOLD_NUGGET);
|
||||
break;
|
||||
|
||||
case "ash_coal":
|
||||
minDrops = ModConfigs.DROPS.ashCoalOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.ashCoalOreMaxDrops.get();
|
||||
dropItem = new ItemStack(Items.COAL); // Temporarily use coal until ASHCOAL item is created
|
||||
break;
|
||||
|
||||
case "impure_iron":
|
||||
minDrops = ModConfigs.DROPS.impureIronOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.impureIronOreMaxDrops.get();
|
||||
dropItem = new ItemStack(Items.IRON_NUGGET); // Use iron nugget until IMPUREIRON item is created
|
||||
break;
|
||||
|
||||
case "impure_gold":
|
||||
minDrops = ModConfigs.DROPS.impureGoldOreMinDrops.get();
|
||||
maxDrops = ModConfigs.DROPS.impureGoldOreMaxDrops.get();
|
||||
dropItem = new ItemStack(Items.RAW_GOLD);
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
// Calculate drops
|
||||
int dropCount = minDrops + random.nextInt(maxDrops - minDrops + 1);
|
||||
|
||||
// Apply fortune if enabled
|
||||
if (enableFortune && fortuneLevel > 0) {
|
||||
int fortuneBonus = random.nextInt(fortuneLevel + 2) - 1;
|
||||
if (fortuneBonus < 0)
|
||||
fortuneBonus = 0;
|
||||
dropCount += fortuneBonus;
|
||||
}
|
||||
|
||||
// Drop the items
|
||||
if (!dropItem.isEmpty() && dropCount > 0) {
|
||||
dropItem.setCount(dropCount);
|
||||
if (world instanceof ServerLevel) {
|
||||
ItemEntity itemEntity = new ItemEntity(
|
||||
(ServerLevel) world,
|
||||
x + 0.5, y + 0.5, z + 0.5,
|
||||
dropItem
|
||||
);
|
||||
itemEntity.setDefaultPickUpDelay();
|
||||
((ServerLevel) world).addFreshEntity(itemEntity);
|
||||
}
|
||||
}
|
||||
|
||||
// Drop experience if configured
|
||||
int expAmount = ModConfigs.DROPS.oreExperienceDrops.get();
|
||||
if (expAmount > 0 && entity instanceof Player) {
|
||||
ExperienceOrb expOrb = new ExperienceOrb(
|
||||
(ServerLevel) world,
|
||||
x + 0.5, y + 0.5, z + 0.5,
|
||||
expAmount
|
||||
);
|
||||
((ServerLevel) world).addFreshEntity(expOrb);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package net.mcreator.customoregen.procedures;
|
||||
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.ExperienceOrb;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
public class OreexperienceProcedure {
|
||||
public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) {
|
||||
if (entity == null)
|
||||
return;
|
||||
if (!(EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY)) != 0)) {
|
||||
world.destroyBlock(BlockPos.containing(x, y, z), false);
|
||||
if (world instanceof ServerLevel _level)
|
||||
_level.addFreshEntity(new ExperienceOrb(_level, x, y, z, 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
modLoader="javafml"
|
||||
loaderVersion="[47,)"
|
||||
license="Not specified"
|
||||
|
||||
[[mods]]
|
||||
modId="custom_ore_gen"
|
||||
version="1.0.0"
|
||||
displayName="custom_ore_gen"
|
||||
displayURL="https://lanro.eu"
|
||||
credits="Created using mod maker MCreator - https://mcreator.net/about"
|
||||
authors="Aulyrius cr\u00E9e via MCreator"
|
||||
description="Changement de la distribution des ressources sur Minecraft, ne pas utilis\u00E9 seul sans KubeJS"
|
||||
|
||||
# Start of user code block mod configuration
|
||||
# End of user code block mod configuration
|
||||
|
||||
[[dependencies.custom_ore_gen]]
|
||||
modId="minecraft"
|
||||
mandatory=true
|
||||
versionRange="[1.20.1]"
|
||||
ordering="AFTER"
|
||||
side="BOTH"
|
||||
|
||||
|
||||
|
||||
|
||||
# Start of user code block dependencies configuration
|
||||
# End of user code block dependencies configuration
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/concentratedcoalore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/concentrateddiamondore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/copperhighore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/copperlowerore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/deepslateironore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/deepslatelapisore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/deepslatepuregoldenore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/deepslateredstoneore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/deepslatesharddiamondore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/highemeraldore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/ironore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/lapisore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/loweremeraldore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/puregoldenore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/redstoneore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "custom_ore_gen:block/sharddiamondblockore"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"block.custom_ore_gen.lapisore": "Lapis ore",
|
||||
"block.custom_ore_gen.sharddiamondblockore": "Shard diamond block ore",
|
||||
"block.custom_ore_gen.concentratedcoalore": "Concentrated coal ore",
|
||||
"block.custom_ore_gen.ironore": "Iron ore",
|
||||
"block.custom_ore_gen.redstoneore": "Redstone ore",
|
||||
"block.custom_ore_gen.deepslatelapisore": "Deepslate lapis ore",
|
||||
"item.custom_ore_gen.sharddiamondpickaxe": "Shard diamond pickaxe",
|
||||
"item.custom_ore_gen.diamondshard.description_0": "Diamond sparkle, to create tools or to create a diamond ",
|
||||
"block.custom_ore_gen.copperhighore": "Copper high ore",
|
||||
"block.custom_ore_gen.copperlowerore": "deepslate copper ore",
|
||||
"block.custom_ore_gen.loweremeraldore": "Loweremeraldore",
|
||||
"block.custom_ore_gen.deepslateredstoneore": "Deepslate redstone ore",
|
||||
"block.custom_ore_gen.deepslateironore": "Deepslate iron ore",
|
||||
"item.custom_ore_gen.sharddiamondaxe": "Sharddiamondaxe",
|
||||
"block.custom_ore_gen.deepslatesharddiamondore": "Deepslate shard diamond ore",
|
||||
"block.custom_ore_gen.concentrateddiamondore": "Concentrated diamond ore",
|
||||
"item.custom_ore_gen.shardironore": "Shard iron ore",
|
||||
"item.custom_ore_gen.diamondshard": "Diamond shard",
|
||||
"block.custom_ore_gen.deepslatepuregoldenore": "Deepslate pure golden ore",
|
||||
"block.custom_ore_gen.puregoldenore": "Pure golden ore",
|
||||
"block.custom_ore_gen.highemeraldore": "emerald ore",
|
||||
"item.custom_ore_gen.sharddiamondshovel": "Shard diamond shovel"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"down": "minecraft:block/coal_ore",
|
||||
"up": "minecraft:block/coal_ore",
|
||||
"north": "minecraft:block/coal_ore",
|
||||
"east": "minecraft:block/coal_ore",
|
||||
"south": "minecraft:block/coal_ore",
|
||||
"west": "minecraft:block/coal_ore",
|
||||
"particle": "minecraft:block/coal_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_diamond_ore",
|
||||
"particle": "minecraft:block/deepslate_diamond_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"down": "minecraft:block/copper_ore",
|
||||
"up": "minecraft:block/copper_ore",
|
||||
"north": "minecraft:block/copper_ore",
|
||||
"east": "minecraft:block/copper_ore",
|
||||
"south": "minecraft:block/copper_ore",
|
||||
"west": "minecraft:block/copper_ore",
|
||||
"particle": "minecraft:block/copper_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_copper_ore",
|
||||
"particle": "minecraft:block/deepslate_copper_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_iron_ore",
|
||||
"particle": "minecraft:block/deepslate_iron_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"down": "minecraft:block/deepslate_lapis_ore",
|
||||
"up": "minecraft:block/deepslate_lapis_ore",
|
||||
"north": "minecraft:block/deepslate_lapis_ore",
|
||||
"east": "minecraft:block/deepslate_lapis_ore",
|
||||
"south": "minecraft:block/deepslate_lapis_ore",
|
||||
"west": "minecraft:block/deepslate_lapis_ore",
|
||||
"particle": "minecraft:block/deepslate_lapis_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_gold_ore",
|
||||
"particle": "minecraft:block/deepslate_gold_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_redstone_ore",
|
||||
"particle": "minecraft:block/deepslate_redstone_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"down": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"up": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"north": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"east": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"south": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"west": "custom_ore_gen:block/shard_diamond_ore",
|
||||
"particle": "custom_ore_gen:block/shard_diamond_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/emerald_ore",
|
||||
"particle": "minecraft:block/emerald_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/iron_ore",
|
||||
"particle": "minecraft:block/iron_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/lapis_ore",
|
||||
"particle": "minecraft:block/lapis_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/deepslate_emerald_ore",
|
||||
"particle": "minecraft:block/deepslate_emerald_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/gold_ore",
|
||||
"particle": "minecraft:block/gold_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/redstone_ore",
|
||||
"particle": "minecraft:block/redstone_ore"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "custom_ore_gen:block/shard_diamond_ore_2",
|
||||
"particle": "custom_ore_gen:block/shard_diamond_ore_2"
|
||||
},
|
||||
"render_type": "solid"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/concentratedcoalore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/concentrateddiamondore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/copperhighore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/copperlowerore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/deepslateironore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/deepslatelapisore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/deepslatepuregoldenore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/deepslateredstoneore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/deepslatesharddiamondore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "custom_ore_gen:item/shard_diamond-removebg-preview"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/highemeraldore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/ironore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/lapisore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/loweremeraldore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/puregoldenore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/redstoneore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "custom_ore_gen:item/shard_diamond_axe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"parent": "custom_ore_gen:block/sharddiamondblockore",
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [
|
||||
10,
|
||||
-45,
|
||||
170
|
||||
],
|
||||
"translation": [
|
||||
0,
|
||||
1.5,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.375,
|
||||
0.375,
|
||||
0.375
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "custom_ore_gen:item/shard_diamond_pickaxe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "custom_ore_gen:item/shard_diamond_shovel"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 313 B |
|
After Width: | Height: | Size: 502 B |
|
After Width: | Height: | Size: 476 B |
|
After Width: | Height: | Size: 489 B |
|
After Width: | Height: | Size: 349 B |
|
After Width: | Height: | Size: 718 B |
|
After Width: | Height: | Size: 542 B |
|
After Width: | Height: | Size: 446 B |
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 692 B |
|
After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 385 B |
|
After Width: | Height: | Size: 552 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 507 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 395 B |