Skip to content

Instantly share code, notes, and snippets.

@RainWarrior
Created June 3, 2014 03:00
Show Gist options
  • Save RainWarrior/cb76d27c8148796b1517 to your computer and use it in GitHub Desktop.
Save RainWarrior/cb76d27c8148796b1517 to your computer and use it in GitHub Desktop.
package rainwarrior.fluidmod
import net.minecraft.{ block, creativetab, init, item },
block.{ Block, material },
creativetab.CreativeTabs,
init.Blocks,
item.{ Item, ItemBlock, ItemStack },
material.Material
import org.apache.logging.log4j.LogManager
import cpw.mods.fml.{ common, relauncher },
common.{ Mod, event, Loader, registry, SidedProxy },
registry.GameRegistry,
relauncher.{ Side, SideOnly }
import cpw.mods.fml.client.registry.{ ISimpleBlockRenderingHandler, RenderingRegistry }
import java.util.{ List => JList }
import FluidMod._
import net.minecraftforge.fluids._
class FluidItemBlock(block: Block) extends ItemBlock(block) {
override def getMetadata(meta: Int) = meta
}
object TestFluid extends Fluid("TestFluid") {
setDensity(-1)
}
object FluidBlock extends BlockFluidFinite(TestFluid, Material.water) {
var renderType = -1
setBlockName(s"$modId.FluidBlock")
setBlockTextureName("water_still")
setCreativeTab(CreativeTabs.tabBlock)
GameRegistry.registerBlock(this, classOf[FluidItemBlock], "FluidBlock")
override def getRenderType = renderType
override def getSubBlocks(item: Item, tabs: CreativeTabs, subs: JList[_]) {
val rsubs = subs.asInstanceOf[JList[ItemStack]]
for(m <- 0 to 15) rsubs.add(new ItemStack(item, 1, m))
}
}
@SideOnly(Side.CLIENT)
object FluidBlockRenderer extends RenderBlockFluid {
FluidBlock.renderType = getRenderId
RenderingRegistry.registerBlockHandler(this)
}
object FluidMod {
@inline final val modId = "FluidMod"
@inline final val modName = modId
val log = LogManager.getLogger(modId)
FluidBlock
}
object FluidModClient {
FluidBlockRenderer
}
class CommonProxy {
def preInit(): Unit = FluidMod
}
class ClientProxy extends CommonProxy {
override def preInit(): Unit = FluidModClient
}
@Mod(
modLanguage = "scala",
modid = modId,
name = modName
)
object FluidModInstance {
@SidedProxy(
clientSide = "rainwarrior.fluidmod.ClientProxy",
serverSide = "rainwarrior.fluidmod.CommonProxy",
modId = modId)
var proxy: CommonProxy = null
@Mod.EventHandler def preinit(e: event.FMLPreInitializationEvent) = proxy.preInit()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment