Documentation ¶
Overview ¶
Package block provides means for registering blocks and creating blocks from registered block descriptors. A BlockDescriptor is a description of a block, kind of a blueprint. One can register a BlockDescriptor, which will allow for later creation of a block with the ID in the block descriptor.
id := id.ParseID("plugin:block") myBlockDescriptor := BlockDescriptor{ID: id} block.Must(block.RegisterBlock(myBlockDescriptor)) // panic on fail block.Create(id) // will succeed
A block can not be created, if there's no block descriptor for it. Almost the same goes for properties that are supported for a block. A PropertyDescriptor doesn't have to be explicitly registered, but is registered with a BlockDescriptor. If one tries to create a block with a property whose PropertyDescriptor is not listed in the BlockDescriptor, the creation will fail.
One can only register one BlockDescriptor per block ID and per numeric ID. Registering a duplicate block descriptor will result in an error.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( Air = BlockDescriptor{ ID: id.ID{"minecraft", "air"}, } Andesite = BlockDescriptor{ ID: id.ID{"minecraft", "andesite"}, } Bedrock = BlockDescriptor{ ID: id.ID{"minecraft", "bedrock"}, } CaveAir = BlockDescriptor{ ID: id.ID{"minecraft", "cave_air"}, } Clay = BlockDescriptor{ ID: id.ID{"minecraft", "clay"}, } CoalOre = BlockDescriptor{ ID: id.ID{"minecraft", "coal_ore"}, } Cobblestone = BlockDescriptor{ ID: id.ID{"minecraft", "cobblestone"}, } Cobweb = BlockDescriptor{ ID: id.ID{"minecraft", "cobweb"}, } Diorite = BlockDescriptor{ ID: id.ID{"minecraft", "diorite"}, } Dirt = BlockDescriptor{ ID: id.ID{"minecraft", "dirt"}, } GoldOre = BlockDescriptor{ ID: id.ID{"minecraft", "gold_ore"}, } Granite = BlockDescriptor{ ID: id.ID{"minecraft", "granite"}, } Grass = BlockDescriptor{ ID: id.ID{"minecraft", "grass"}, } GrassBlock = BlockDescriptor{ ID: id.ID{"minecraft", "grass_block"}, } Gravel = BlockDescriptor{ ID: id.ID{"minecraft", "gravel"}, } IronOre = BlockDescriptor{ ID: id.ID{"minecraft", "iron_ore"}, } LapisOre = BlockDescriptor{ ID: id.ID{"minecraft", "lapis_ore"}, } LilyPad = BlockDescriptor{ ID: id.ID{"minecraft", "lily_pad"}, } OakFence = BlockDescriptor{ ID: id.ID{"minecraft", "oak_fence"}, } OakLeaves = BlockDescriptor{ ID: id.ID{"minecraft", "oak_leaves"}, } OakLog = BlockDescriptor{ ID: id.ID{"minecraft", "oak_log"}, } OakPlanks = BlockDescriptor{ ID: id.ID{"minecraft", "oak_planks"}, } Rail = BlockDescriptor{ ID: id.ID{"minecraft", "rail"}, } RedstoneOre = BlockDescriptor{ ID: id.ID{"minecraft", "redstone_ore"}, } Seagrass = BlockDescriptor{ ID: id.ID{"minecraft", "seagrass"}, } Stone = BlockDescriptor{ ID: id.ID{"minecraft", "stone"}, } TallSeagrass = BlockDescriptor{ ID: id.ID{"minecraft", "tall_seagrass"}, } Vine = BlockDescriptor{ ID: id.ID{"minecraft", "vine"}, } VoidAir = BlockDescriptor{ ID: id.ID{"minecraft", "void_air"}, } Water = BlockDescriptor{ ID: id.ID{"minecraft", "water"}, } )
Functions ¶
func RegisterBlock ¶
func RegisterBlock(desc BlockDescriptor) error
Types ¶
type Block ¶
func CreateFromDescriptor ¶
func CreateFromDescriptor(desc BlockDescriptor) (Block, error)
type BlockDescriptor ¶
type BlockDescriptor struct { ID id.ID AvailableProperties []PropertyDescriptor }
type PropertyDescriptor ¶
type PropertyDescriptor struct { Name string Type reflect.Type DefaultValue interface{} AllowedValues []interface{} }
func DescriptorForPropertyName ¶
func DescriptorForPropertyName(name string) (PropertyDescriptor, bool)