Namespace Vintagestory.GameContent
Classes
- AlloyRecipe
This is used to define what metals can be mixed together to create another type of metal inside of a crucible.
- BarrelOutputStack
Defines an output for use in a BarrelRecipe. This object takes most of its properties from the JsonItemStack class.
- BarrelRecipe
Creates a recipe for use inside a barrel. Primarily used to craft with liquids.
- BarrelRecipeIngredient
Defines an ingredient for use in a BarrelRecipe.
- BehaviorCollectFrom
When this block is right clicked, harvest its drops and replace it with an empty version. Uses the code "CollectFrom". This behavior has no properties.
Note that this behavior requires a variant which ends in "-empty", and also requires at least two drops. The first drop should be the item to collect, the second drop is the block itself. See 'henbox.json' for an example.
- BehaviorElevatorControl
Used in combination with the "BEBehaviorElevatorControl" to create an elevator. Uses the code "ElevatorControl", and has no properties.
- BehaviorMyceliumHost
Allows a block to have mushrooms naturally spawn on it. Uses the code "MyceliumHost", and has no properties.
- BlockBehaviorBreakIfFloating
Forces the Block to drop as an item when surrounded by air blocks. It will override drops returned by the Block when this happens. Uses the code "BreakIfFloating". This behavior doesn't use any properties.
- BlockBehaviorBreakSnowFirst
A simple block behavior that breaks a snow cover first, before breaking the block. Uses the code "BreakSnowFirst". This behavior has no properties.
- BlockBehaviorCanAttach
Allows some other blocks, such as torches, to be attached onto specific sides of this block. Uses the code "CanAttach".
- BlockBehaviorCanIgnite
Used if the attached block can ignite other blocks with Shift + Right Click. This behavior uses the code "CanIgnite", and has no properties.
- BlockBehaviorChimney
If this block is placed directly above a smoke emitter (such as a firepit or pit kiln), smoke particles will be emitted. Uses the code "chimney" and has no properties.
- BlockBehaviorContainer
Specifies that this block works as a container. Note that it requires a block entity class which implements BlockEntityOpenableContainer. Used with the code "Container". This behavior does not use any properties.
- BlockBehaviorCreatureContainer
Allows a creature to be contained inside of this block, as well as catching and releasing the entity. Note that this behavior is built around use with the reed chest, and may have unexpected results with other blocks. This behavior uses the code "CreatureContainer", and has no properties.
- BlockBehaviorDecor
Allows this block to be placed on the side of another block, as a decorational shape/texture. Uses the code "decor".
- BlockBehaviorDoor
A block behavior for a door. Also requires the "door" block entity behavior type on a block to work. Defined with the "Door" code.
- BlockBehaviorDropNotSnowCovered
Drops the non-snow-covered block, when the snow covered version one is destroyed. This behavior uses the "DropNotSnowCovered" code, and has no properties.
- BlockBehaviorExchangeOnInteract
Allows a block to swap between a set of states on activation. Note that this behavior has some small hardcoding for legacy trapdoors. This behavior is used with the code "ExchangeOnInteract".
- BlockBehaviorFiniteSpreadingLiquid
Used to create a liquid which distrubutes itself over an area, and has interaction with other liquids. Uses the "FiniteSpreadingLiquid" code.
- BlockBehaviorGiveItemPerPlayer
Passes functions through to the BEBehaviorGiveItemPerPlayer block entity behavior. Therefore, requires that. Uses the "GiveItemPerPlayer" code.
- BlockBehaviorHarvestable
Allows a block to be harvested with the right mouse button for set items. Uses the code "harvestable".
- BlockBehaviorHeatSource
Allows this block to work as a heat source for entities. BlockEntities for a block with this behavior may also define their own custom heat strength. Uses the code "HeatSource".
- BlockBehaviorHorizontalAttachable
Forces a block to only allow placement on the side of another block. Requires use of the "horizontalorientation" variant group. Uses the code "HorizontalAttachable".
- BlockBehaviorHorizontalOrientable
Allows a block to automatically rotate between the four horizontal directions based on placement angle. Requires use of the "horizontalorientation" variant group. Uses the "HorizontalOrientable" code.
- BlockBehaviorJonasBoilerDoor
Provides interaction for the JonasBoilerDoor block entity behavior. Uses the "JonasBoilerDoor" code. This behavior has no properties.
- BlockBehaviorJonasGasifier
Passes functions to the BEBehaviorJonasGasifier block entity behavior, and therefore requires that. Uses the code "JonasGasifier". This behavior has no properties.
- BlockBehaviorJonasHydraulicPump
Passes functions to the BEBehaviorJonasHydraulicPump block entity behavior, and therefore requires that. Uses the code "JonasHydraulicPump". This behavior has no properties.
- BlockBehaviorLadder
Used to control ladder behavior, including horizontal orientation, placement, collection. Note that this does not control how entities react to ladders (see "climbable" in blocktype). Requires use of the 'horizontalorientation' variants. Uses the code "Ladder".
- BlockBehaviorLockable
Allows a block to be locked by a player with a padlock, preventing any interaction from any other players. Uses the "lockable" code. This behavior has no properties.
- BlockBehaviorMilkingContainer
Allows a block to be used as a container for milking an entity. Must be on a block that has the "BlockLiquidContainerBase" class. Uses the code "MilkingContainer", and has no properties.
- BlockBehaviorMultiblock
Turns this block into a multiblock, allowing it to be larger than a single block. By default, all blocks will have the same properties. If you need different properties or functionality for each block section, you will need to use a new block class. Uses the code "Multiblock".
- BlockBehaviorNWOrientable
Automatically swaps between 'North/South' and 'West/East' variants based on placement rotation. Requires an "orientation" or "side" variant with the codes "ns" and "we". Uses the code "NWOrientable", and has no properties.
- BlockBehaviorOmniAttachable
Allows a block to be attached to any face, including vertical faces. Requires states from "abstract/horizontalorientation", as well as additional "up" and "down" states. Uses the code "OmniAttachable".
- BlockBehaviorPillar
Used to rotate a block that has a 'top' face, such as a wooden log. Requires a "rotation" variant group with "ud", "ns", "we" states. Uses the "pillar" code.
- BlockBehaviorPushEventOnBlockBroken
Publishes the BlockPos when a Block is broken with the given event name. Likely used in tandem with code mods. Uses the "PushEventOnBlockBroken" code.
- BlockBehaviorRainDrip
Makes a block emit rain particles during or after rainy weather. Uses the "RainDrip" code. This behavior has no properties.
- BlockBehaviorReinforcable
Allows a block to be reinforced, which protects against it being broken as quickly. Appropriate blocks are automatically given this behavior. This behavior is not added through the normal property, but instead a custom attribute. This behavior has no properties. You can add the "reinforcable" attribute to force an object to be reinforcable.
- BlockBehaviorReparable
Blocks which can be repaired using glue. If not repaired, they will shatter (dropping nothing) when broken. Requires use of the ShapeFromAttributes block entity behavior. Uses the code "Reparable".
- BlockBehaviorRightClickPickup
Allows a block to be picked up with a right click. Uses the code "RightClickPickup".
- BlockBehaviorRopeTieable
Allows rope to be tied to this block. This behavior does not have any specific JSON properties. This block behavior uses the code "RopeTieable".
- BlockBehaviorSlab
Unused block behavior for slab placement. Consider using BlockBehaviorOmniRotatable instead. Uses the "slab" code. This behavior has no properties.
- BlockBehaviorSneakPlacing
Forces a block to only allow to be placed when the player is sneaking. Uses the code "SneakPlacing". This behavior has no properties.
- BlockBehaviorSnowballable
Allows a block to have snowballs taken from it. Many blocks automatically receive this behavior if they have a snow layer or the SnowballableDecrementedBlockCode attribute. Uses the code 'Snowballable'.
- BlockBehaviorSteaming
Makes a block emit steam particles, and also marks some water blocks as 'boiling'. Uses the code "Steaming". This behavior has no properties.
- BlockBehaviorTransformBreak
When a block with this behavior is broken. it will turn into another specified block instead of air. This block behavior uses the code "TransformBreak".
- BlockBehaviorTrapDoor
Marks a block as an animated trapdoor. Requires the use of the BEBehaviorTrapDoor block entity behavior. Uses the "TrapDoor" code.
- BlockBehaviorUnplaceable
Disallows standard placement for this block. If a previous listed behavior allows a special placement method (see CollectibleBehaviorGroundStorable), then that method will be allowed. Uses the "unplaceable" code. This behavior has no properties.
- BlockBehaviorUnstable
Only allows a block to exist if it is attached to another block. Uses the code "unstable".
- BlockBehaviorUnstableFalling
Spawns an EntityBlockFalling when the user places a block that has air underneath it or if a neighbor block is removed and causes air to be underneath it. Also has optional functionality to prevent a block being placed if it is unstable. Uses the code "UnstableFalling".
- BlockBehaviorUnstableRock
Makes a block potentially unstable, but can be held up using support beams. This behavior will only function if the "caveIns" world config is set to true. Uses the code "UnstableRock".
- BlockBehaviorWrenchOrientable
Allows a block to cycle through variants when using a wrench. Uses the code "WrenchOrientable".
- ClayFormingRecipe
Creates a recipe that can be created using clay. This class takes all of its properties from the LayeredVoxelRecipe<T> class.
- CookingRecipe
Defines a recipe to be made using a cooking pot. Creating a new recipe for a cooking pot will automatically register the new meal item, unless using CooksInto.
- CookingRecipeIngredient
An ingredient for a CookingRecipe. Note that each ingredient can have multiple valid itemstacks that satisfy the ingredient.
- CookingRecipeStack
An itemstack specific for a CookingRecipeIngredient. Most properties are extended from JsonItemStack.
- KnappingRecipe
Defines a stone/flint knapping recipe. Uses all properties from LayeredVoxelRecipe<T>, however always uses a single layer.
- MetalAlloyIngredient
Defines an ingredient for a AlloyRecipe recipe.
- SmithingRecipe
Defines a smithing recipe, to be created on an anvil. Uses a total of 6 layers, and gets its properties from LayeredVoxelRecipe<T>.