- 28
- 2
Решил попробовать написать мод, на автопереплавку руд тк не нашёл подходящего. Можете оценить что получилось? Явно что-то надо изменить. Но как реализовать не понимаю. 1) обобщить все руды, чтобы не прописывать для каждой руды, 2) вынести колво опыта в конфиг. Не подскажете как такое можно сделать?
Главный класс:
package ru.maxed.smelting;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
@Mod(modid = "smelting")
public class Smelting {
@Mod.EventHandler
public void load(FMLInitializationEvent event)
{
MinecraftForge.EVENT_BUS.register(new changeDrop());
}
}
Обработчик Ивента:
package ru.maxed.smelting;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
class changeDrop {
@SubscribeEvent
public void handleBlockDrops(BlockEvent.HarvestDropsEvent e){
if(e.getState().getBlock() == Blocks.IRON_ORE){
e.getDrops().clear();
e.getDrops().add(new ItemStack(Items.IRON_INGOT, 1));
}
if(e.getState().getBlock() == Blocks.GOLD_ORE){
e.getDrops().clear();
e.getDrops().add(new ItemStack(Items.GOLD_INGOT, 1));
}
}
@SubscribeEvent
public void handleExpDrops(BlockEvent.BreakEvent e){
if(e.getState().getBlock() == Blocks.IRON_ORE){
e.setExpToDrop(100);
}
if(e.getState().getBlock() == Blocks.GOLD_ORE){
e.setExpToDrop(200);
}
}
}
Последнее редактирование: