# Pastebin eSJpgxec package net.darkdna.amanda.mc.butts import net.minecraft.block.Block import net.minecraft.block.material.MapColor import net.minecraft.block.material.Material import net.minecraft.block.state.IBlockState import net.minecraft.creativetab.CreativeTabs import net.minecraft.entity.player.EntityPlayer import net.minecraft.init.Blocks import net.minecraft.item.Item import net.minecraft.item.ItemStack import net.minecraft.util.EnumBlockRenderType import net.minecraft.util.EnumFacing import net.minecraft.util.math.BlockPos import net.minecraft.world.IBlockAccess import net.minecraft.world.World import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.event.FMLInitializationEvent import net.minecraftforge.fml.common.event.FMLPreInitializationEvent import net.minecraftforge.fml.common.registry.EntityRegistry import net.minecraftforge.fml.common.registry.GameRegistry import net.minecraftforge.fml.relauncher.Side import net.minecraftforge.fml.relauncher.SideOnly import org.apache.logging.log4j.LogManager @Mod(modLanguage = "kotlin", modLanguageAdapter = "net.darkdna.amanda.mc.butts.KotlinAdapter", name = "Butts", version = "0.0.1", modid = "butts") @Suppress("UNUSED") object ButtsMod { val log = LogManager.getLogger("Butts") var myBlock: MyBlock = MyBlock() @Mod.EventHandler fun preInit(evt: FMLPreInitializationEvent) { log.info("PRE-INIT") GameRegistry.register(myBlock) } @Mod.EventHandler fun init(evt: FMLInitializationEvent) { log.info("INIT") log.info("myBlock: ${myBlock}") GameRegistry.addShapedRecipe(ItemStack(myBlock, 1), "DDD", "DDD", "DDD", 'D', ItemStack(Blocks.DIRT)) } } class MyBlock: Block(Material(MapColor.PURPLE)) { init { blockHardness = 1.0f unlocalizedName = "\"Diamond Block\"" setCreativeTab(CreativeTab) setRegistryName("my-block") } override fun getRenderType(state: IBlockState?): EnumBlockRenderType = EnumBlockRenderType.MODEL override fun isSideSolid(base_state: IBlockState?, world: IBlockAccess?, pos: BlockPos?, side: EnumFacing?): Boolean = true override fun canHarvestBlock(world: IBlockAccess?, pos: BlockPos?, player: EntityPlayer?): Boolean = true override fun getHarvestTool(state: IBlockState?): String? = null override fun canBeReplacedByLeaves(state: IBlockState?, world: IBlockAccess?, pos: BlockPos?): Boolean = false override fun getValidRotations(world: World?, pos: BlockPos?): Array = arrayOf(EnumFacing.EAST, EnumFacing.WEST, EnumFacing.NORTH, EnumFacing.SOUTH) } object CreativeTab: CreativeTabs(CreativeTabs.getNextID(), "Butts") { private val stack = GameRegistry.makeItemStack("minecraft:diamond_block", 0, 1, "") @SideOnly(Side.CLIENT) override fun getTabIconItem() = stack.item @SideOnly(Side.CLIENT) override fun getIconItemDamage() = stack.itemDamage override fun getTranslatedTabLabel() = "Butts" }