Warung Bebas

Kamis, 26 Desember 2013

Forge - Blocks

An overview of the Forge code related to Blocks.

Registries

  • GameRegistry.registerBlock to register your block and (optionally) associate it with an ItemBlock.  If you don�t provide an ItemBlock, it will make a default one itself and register it for you.  If you provide an ItemBlock, you don�t need to register the ItemBlock yourself separately.  GameRegistry.findBlock can be used to retrieve the block corresponding to a given name.
  • RenderingRegistry.registerBlockHandler (in conjunction with an ISimpleBlockRenderingHandler class).  RenderingRegistry uses a unique renderID, returned by the class�s getRenderType, to find the renderer with the matching .getRenderID() method.   RenderingRegistry.getNextAvailableRenderId() is useful for getting a unique ID for the linked classes to share.  See here for more information.
  • MinecraftForge.addGrassPlant  (and .addGrassSeedfor the corresponding Item) are used to add new types of grass.
  • MinecraftForge has a several methods used to add new tools and control their effectiveness against different blocks, in particular setToolClass and setBlockHarvestLevel.
  • LanguageRegistry.addNameForObject � allows you to add a displayed name for your Blocks.  Apparently it�s better to use a Language Pack instead of this registry.  I haven�t tried those yet so I don�t know.
  • ChestGenHooks is used to control the spawning of loot chests during world generation.  See the World generation section.

Utility functions

  • RotationHelper: a couple of functions to help rotate vanilla blocks to face the desired direction (eg piston, doors, etc), convert from block�s metadata to a standard �direction value�.

New methods and classes

  • Block has many methods added to let mods change behaviour more easily � ladder, fire, tileentities, beds, harvesting, leaves interaction, explosion interaction, plant interactions, redstone, and a few more.   They are defined after the comment in the Block code
    /*===========Forge Start ========*/.
  • IPlantableinterface for plants
  • IShearableinterface for blocks which can be �shorn� by shears � eg like tallgrass or vines
  • Fluids:  A variety of classes to let you define your own fluids (like lava and water) and control their behaviour; comprised of BlockFluidBase, BlockFluidClassic, Fluid and FluidStack.

Events

  • BreakEvent � when a block is broken
  • DrawBlockHighlightEvent� draw the highlight box around the block when your cursor is pointing at it
  • PlayerInteractEvent� among other things - when a player left-clicks a block
  • HarvestDropsEvent� when a block is harvested
  • HarvestCheck � can the player break this block with this tool?
  • BreakSpeed � speed of breaking this block with this tool
  • SaplingGrowTreeEvent
  • BonemealEvent � when bonemeal is used on a plant
  • Various FluidEvents related to the Forge Fluids classes


~Overview of Forge (and what it can do for you)
    Forge concepts
           Some general notes
           How Forge starts up your code (@Mod, @SidedProxy, etc) 
           Registering your classes
           Extra methods for vanilla base classes
           Events
     Forge summary - grouped by task
           Blocks
           Items
           TileEntities
           Entities
           World generation, loading, saving
           Miscellaneous - player input, rendering, GUI, chat, sounds

0 komentar em “Forge - Blocks”

Posting Komentar

 

My Blog Copyright © 2012 Fast Loading -- Powered by Blogger