Namespace Vintagestory.API.Common
Classes
ActiveSlotChangeEventArgs
This contains data about an event that fires when a player changes which slot they're actively using. Such as the currently selected hotbar slot.
AdvancedParticleProperties
AirBubbleParticles
AmbientModifier
Animation
Represents a shape animation and can calculate the transformation matrices for each frame to be sent to the shader Process
For each frame, for each root element, calculate the transformation matrix. Curent model matrix is identy mat. 1.1. Get previous and next key frame. Apply translation, rotation and scale to model matrix. 1.2. Store this matrix as animationmatrix in list 1.3. For each child element 1.3.1. Multiply local transformation matrix with the animation matrix. This matrix is now the curent model matrix. Go to 1 with child elements as root elems
For each frame, for each joint 2.1. Calculate the inverse model matrix 2.2. Multiply stored animationmatrix with the inverse model matrix
done
AnimationCache
AnimationFrame
AnimationJoint
AnimationKeyFrame
AnimationKeyFrameElement
AnimationManager
AnimationMetaData
AnimationTrigger
AnimatorBase
Syncs every frame with entity.ActiveAnimationsByAnimCode, starts, progresses and stops animations when necessary
AnimCacheEntry
AssetCategory
AssetLocation
Defines a complete path to an assets, including it's domain
AssetLocationAndSource
Defines a complete path to an assets, including it's domain. Includes an extra Source field for debugging.
AssetLocationJsonParser
AttachmentPoint
This is a spot on the shape that connects to another shape.
AttachmentPointAndPose
BakedBitmap
BakingProperties
BitmapExternal
BitmapRef
Block
Basic class for a placeable block
BlockBehavior
BlockBreakingParticleProps
BlockBrokenParticleProps
BlockCropProperties
BlockCubeParticles
BlockDamage
BlockDropItemStack
Represents an itemstack that is dropped by chance when breaking a block
BlockEntity
Basic class for block entities - a data structures to hold custom information for blocks, e.g. for chests to hold it's contents
BlockEntityBehavior
Basic class for block entities - a data structures to hold custom information for blocks, e.g. for chests to hold it's contents
BlockEntityBehaviorType
BlockMaterialUtil
BlockOffsetAndNumber
BlockSchematic
BlockSelection
Contains all the information for a players block selection event
BlockSounds
BlockUpdate
BlockUpdateStruct
ChatCommand
A base class for all chat commands.
ChatLine
an internal control containing the properties of a chat message.
ClientAnimator
Syncs every frame with entity.ActiveAnimationsByAnimCode, starts and stops animations when necessary
and does recursive interpolation on the rotation, position and scale value for each frame, for each element and for each active element
this produces always correctly blended animations but is significantly more costly for the cpu when compared to the technique used by the AnimatorBase.
You can use this class and dynamically switch between fast and pretty mode by setting the
ClientChatCommand
A handle for creating client commands.
ClimateCondition
CmdArgs
The arguments from a client or sever command
CollectibleBehavior
CollectibleObject
Contains all properties shared by Blocks and Items
CollectibleParticleProperties
Abstract class used for BlockVoxelParticles and ItemVoxelParticles
ColorMap
CombustibleProperties
Used for an items combustible value
CompositeShape
CraftingRecipeIngredient
A crafting recipe ingredient
CreativeInventoryTab
CreativeTabAndStackList
CropBehavior
CrushingProperties
DamageSource
DecorFlags
DummyInventory
A place holder inventory, useful, e.g., for when you want to render an itemstack and not have it spoil
DummySlot
A single slot not attached to a given inventory.
ElementPose
The position of an element.
Entitlement
EntityAgent
An autonomous, goal-directed entity which observes and acts upon an environment
EntityBehaviorNameTag
EntityBehaviorPassivePhysics
EntityControls
The available controls to move around a character in a game world
EntityCubeParticles
EntityFloatStats
EntityHeadController
EntityHumanoid
EntityItem
EntityItemSlot
EntityPlayer
EntitySelection
EntityStat<T>
EntityStats
EnumAppSideExtensions
EnumWindBitModeMask
ExplosionParticles
A subclass of ExplosionSmokeParticles.
ExplosionSmokeParticles
Handles the smoke particles of where the explosion was.
ExtraHandbookSection
FertilizerProps
FoodNutritionProperties
FrameProfilerUtil
GeneratedStructure
GridRecipe
Represents a crafting recipe
GridRecipeIngredient
GrindingProperties
HeldSounds
HistoryState
InventoryBase
Basic class representing an item inventory
InventoryBasePlayer
Abstract class used for all inventories that are "on" the player. Any inventory not inheriting from this class will not be stored to the savegame as part of the players inventory.
InventoryDisplayed
A general purpose inventory which sends update packets to nearby players (used for rendering Display Case, Pulveriser, etc)
InventoryGeneric
A general purpose inventory
Item
Represents an in game Item of Vintage Story
ItemClassMethods
ItemSlot
The default item slot to item stacks
ItemSlotBackpack
A slot that can hold mobile containers
ItemSlotCharacter
ItemSlotCreative
ItemSlotOffhand
A slot that only accepts collectibles designated for the off-hand slot
ItemSlotOutput
A slot from which the player can only take stuff out of, but not place anything in it
ItemSlotSurvival
Standard survival mode slot that can hold everything except full backpacks
ItemSlotUniversal
A universal item slot type that can hold anything.
ItemStack
ItemStackMergeOperation
ItemStackMoveOperation
JsonAttributesConverter
Implementation of JsonConverter that converts objects to an instance of a JsonObject
JsonItemStack
JsonUtil
LayeredVoxelRecipe<T>
LoggerBase
Base implementation for ILogger which implements all methods besides a new abstract method LogImpl(EnumLogType, String, Object[]).
MetalProperty
MetalPropertyVariant
Mod
Represents a mod in the mod manager. May contain zero to multiple ModSystem instances within it.
ModDependency
Represents a mod dependency requirement of one mod for another.
ModDependencyAttribute
Applied to a mod assembly multiple times for each required dependency. Superseded by this mod's "modinfo.json" file, if available.
ModelTransform
Used for transformations applied to a block or item model
ModelTransformKeyFrame
A keyframe for model transformation.
ModInfo
Meta data for a specific mod folder, archive, source file or assembly. Either loaded from a "modinfo.json" or from the assembly's ModInfoAttribute.
ModInfoAttribute
Applied to a mod assembly to provide additional meta data information about a code mod. Superseded by "modinfo.json" file, if available.
ModSystem
Base of a system, which is part of a code mod. Takes care of setting up, registering and handling all sorts of things. You may choose to split up a mod into multiple distinct systems if you so choose, but there may also be just one.
ModWorldConfiguration
MultiblockStructure
You can export one of these by making a selection with worldedit, looking at the center block (which should be your controller/master) then typing /we mgencode. Please note, air blocks are not exported
NoAnimationManager
A No-Animation Manager built off of IAnimationManager.
NoAnimator
A NoAnimator built off of IAnimator
ParticleBase
Represents a particle that has been spawned
ParticlesProviderBase
A base class for all particle providers.
PermaFertilityBoost
PlayerAnimationManager
PlayerGroupMembership
PlayerHeadController
PlayStyle
ProfileEntry
ProfileEntryRange
RecipeBase<T>
Creates a new base recipe type.
RecipeRegistryBase
RecipeRegistryGeneric<T>
RegistryObject
A registerable object with variants, i.e. an item, a block or an entity
RunningAnimation
ServerAnimator
ServerChatCommand
A handler for creating server commands.
Shape
The base shape for all json objects.
ShapeElement
A shape element built from JSON data within the model.
ShapeElementFace
ShapeElementWeights
SimpleParticleProperties
A configurable implementation of IParticlePropertiesProvider
SQLiteDBConnection
StackCubeParticles
StandardWorldProperty
SurfaceDrawImage
TransitionableProperties
TransitionState
TyronThreadPool
VertexFlags
Special class to handle the vertex flagging in a very nicely compressed space.
Bit 0-7: Glow level
Bit 8-10: Z-Offset
Bit 11: Reflective bit
Bit 12: Lod 0 Bit
Bit 13-24: X/Y/Z Normals
Bit 25, 26, 27, 28: Wind mode
Bit 29, 30, 31: Wind data
VtmlParser
VtmlTagToken
VtmlTextToken
VtmlToken
VtmlUtil
VtmlUtilApiAdditions
WaterSplashParticles
WeightedSlot
WorldConfigurationAttribute
WorldConfigurationValue
WorldProperty<T>
WorldPropertyVariant
Structs
SolarSphericalCoords
SourceStringComponents
For performance, don't build and store new concatenated strings for every block variant, item and entity, when these will only be used (if ever) for error logging
Interfaces
IAmbientManager
This is the system that manages the worlds ambient settings, such as fog color/density and clouds. The ambient manager basically blends ambientmodifiers on top of each other to generate the final ambient values. Blending is in order how the modifiers are held in CurrentModifiers in the likes of float weight = modifier.FogMin.Weight; BlendedFogMin = w * modifier.FogMin.Value + (1 - w) * BlendedFogMin;
IAnimationManager
Everything needed for allowing animations the Entity class holds a reference to an IAnimator. Currently implemented by ServerAnimator
IAnimator
IAsset
Represents a loaded asset from the assets folder
IAssetManager
Takes care loading, reloading and managing all files inside the assets folder. All asset names and paths are always converted to lower case.
IAssetOrigin
IBitmap
IBlockAccessor
Provides read/write access to the blocks of a world
IBlockAccessorPrefetch
Useful for when you have to scan multiple times over the same set of blocks
IBlockAccessorRevertable
Provides read/write access to the blocks of a world.
IBlockEntityContainer
IBlockEntityRotatable
Implement this interface if schematics containing this block entity needs to modify it's tree attribute data. Beware, this method is called without the block entity existing in the world (yet). The modified tree will then be used to actually create the block
IBlockFlowing
IBlockShapeSupplier
Adds a tesselator to your block WARNING: please make sure whatever functions and fields you use with the OnTesselation event are THREAD SAFE!
IBulkBlockAccessor
Useful for setting many blocks at once efficiently
IByteSerializable
ICachingBlockAccessor
IChunkBlocks
IChunkLight
IClassRegistryAPI
Interface for creating instances
IClientChunk
IClientGameCalendar
ICollectibleDisplayable
A collectible object that can be placed on the ground or on shelves or in display cases, but require custom code or rendering for it
ICollectibleOnDisplayInteractable
A collectible object that can be placed on the ground or on shelves or in display cases, but also can still accept interactions from the player
ICoreAPI
Common API Components that are available on the server and the client. Cast to ICoreServerAPI or ICoreClientAPI to access side specific features.
ICoreAPICommon
API Methods common to the server and client
IDrawYAdjustable
Used for blocks (e.g. crops and dead crops) where the y-position might need to be adjusted at the time of tesselating an individual block
IEventAPI
Events that are available on the server and the client
IFarmlandBlockEntity
IGameCalendar
Main API for retrieving anything calender or astronomy related
IGeometryTester
Used for blocks (e.g. chiselled blocks) where the basic block geometry: AO shading, side opaque etc - depends on the individual block or blockEntity
IInventory
Basic interface representing an item inventory
IInventoryNetworkUtil
IItemStack
Represents a stack of items or blocks
ILandClaimAPI
ILogger
Interface to the client's and server's event, debug and error logging utilty.
IMapChunk
Holds 2 dimensional data for one chunk column
IMapRegion
2D Map data for a 16x16 area of chunk columns. Holds a few maps for the chunk generation.
IModLoader
IMountable
IMountableSupplier
INetworkAPI
IParticlePropertiesProvider
Represents a provider of particle properties to be used when generating a particle
IPlayer
Represents a player
IPlayerInventoryManager
Let's you do various interesting things with the players inventory.
IRecipeBase<T>
IRecipeIngredient
IRecipeOutput
IServerMapChunk
ISlotProvider
ITextureLocationDictionary
IWithDrawnHeight
Used for blocks (e.g. tallgrass and flowers) where the drawnHeight is set in attributes
IWorldAccessor
Important interface to access the game world.
IWorldChunk
IWorldPlayerData
Some world-specific information about a connected player. If you want modify any value, also broadcast the playerdata to all connected clients. This is the object that stored and loaded with the save game
IXPlatformInterface
The platform interface for various controls. Used by the game to handle various properties.
Enums
EnumAnimationBlendMode
EnumAppSide
EnumBlastType
EnumBlockAccessFlags
EnumBlockMaterial
Material of which a block my be made of Currently only used for mining speed for tools
EnumCharacterDressType
EnumChatType
A definition for the types of chat that could occur.
EnumChunkDirtyReason
EnumDamageSource
EnumDamageType
EnumDataType
EnumDeathCause
EnumDespawnReason
EnumEntityAction
A players in-world action
EnumEntityActivityStoppedHandling
EnumEntityAnimationEndHandling
EnumEntityState
EnumFoodCategory
EnumFreeMovAxisLock
EnumGameMode
A players game mode
EnumGetClimateMode
The type of climate values you wish to receive
EnumHabitat
EnumHand
EnumHandHandling
How the engine should handle attacking with an item in hands
EnumHandInteract
EnumHandling
Tells the engine how to handle default or subsequent similar behaviors
EnumHemisphere
EnumHighlightShape
EnumHighlightSlot
EnumIgniteState
EnumInteractMode
EnumItemClass
EnumItemDamageSource
EnumItemStorageFlags
Determines the kinds of storage types the item can be put into
EnumItemUseCancelReason
EnumLightLevelType
Used in blockAccessor.GetLightLevel() to determine what kind of light level you want
EnumLogType
EnumMatterState
EnumMergePriority
EnumModifierKey
EnumModSourceType
Represents the origin file type of the mod.
EnumModType
Describes the type of a mod. Allows easy recognition and limiting of what any particular mod can do.
EnumMonth
EnumMoonPhase
EnumMouseButton
EnumOrigin
EnumParticleModel
EnumPlayerGroupMemberShip
EnumPlayerJoinBehavior
EnumRandomizeAxes
EnumReflectiveMode
On the graphics card we have only one reflective bit, but we can store the mode in the wind data bits
EnumReplaceMode
EnumSeason
EnumShapeFormat
EnumSmeltType
EnumSoilNutrient
EnumSpecialKey
EnumStatBlendType
EnumTokenType
EnumTool
EnumTransitionType
EnumWindBitMode
EnumWorldAccessResponse
VtmlParser.ParseState
Delegates
ActionBoolReturn
Return true if the action/event was successfull
ActionBoolReturn<T>
Returns true if the action/event was successfull.
ActionConsumable
Return true if the action/event should be "consumed" (e.g. mark a mouse click as handled)
ActionConsumable<T>
Return true if the action/event should be "consumed" (e.g. mark a mouse click as handled)
ActionConsumable<T1, T2>
Return true if the action/event should be "consumed" (e.g. mark a mouse click as handled)
BlockBehaviorDelegate
BlockBreakDelegate
BlockBrokenDelegate
BlockPlacedDelegate
BlockUsedDelegate
CanPlaceOrBreakDelegate
CanSpawnNearbyDelegate
CanUseDelegate
ChunkColumnGenerationDelegate
ChunkColumnLoadedDelegate
Triggered when the server loaded a chunk column from disk or generated a new one
ChunkColumnSnowUpdateDelegate
Triggered immediately when the server loads a chunk column from disk or generates a new one, in the SupplyChunks thread (not the main thread)
ChunkColumnUnloadDelegate
Triggered just before a chunk column gets unloaded
ChunkDirtyDelegate
For handling dirty chunks
ChunkGenerationPassDelegate
ClientChatCommandDelegate
CollectibleBehaviorDelegate
CustomGetTransitionSpeedMulDelegate
Custom transition speed handler
DialogClickDelegate
The delegate for a dialogue click.
EntityDeathDelegate
EntityDelegate
EntityDespawnDelegate
EventBusListenerDelegate
For handling events on the event bus
Func<TResult>
Func<T1, TResult>
Func<T1, T2, TResult>
Func<T1, T2, T3, TResult>
Func<T1, T2, T3, T4, TResult>
Func<T1, T2, T3, T4, T5, T6, T7, TResult>
GetAutoPullFromSlotDelegate
GetAutoPushIntoSlotDelegate
GetLatitudeDelegate
GetMountableDelegate
This method needs to find your mountable based on the tree attribute data, which you can write to in IMountable.MountableToTreeAttributes() For example if its an entity, you will want to store the entity id, then this method can simply contain
return world.GetEntityById(tree.GetLong("entityId"));
GetSuitabilityDelegate
HemisphereDelegate
HitEntityDelegate
LogEntryDelegate
MapChunkGeneratorDelegate
MapRegionGeneratorDelegate
MapRegionLoadedDelegate
Triggered when the server loaded a map region from disk or generated a new one
MapRegionUnloadDelegate
Triggered just before a map region gets unloaded
MatchGridRecipeDelegate
NewSlotDelegate
OnEntityAction
OnGetClimateDelegate
OnGetWindSpeedDelegate
OnInteractDelegate
OnInventoryClosedDelegate
OnInventoryOpenedDelegate
OnInventorySlot
Return false to stop walking the inventory
PlaceBlockDelegate
PlayerChatDelegate
When the player wrote a chat message. Set consumed.value to true to prevent further processing of this chat message
PlayerDeathDelegate
When the player died, this delegate will fire.
PlayerDelegate
PositionMismatchDelegate
ResumeServerDelegate
SelectedHotbarSlotDelegate
ServerChatCommandDelegate
SolarSphericalCoordsDelegate
Should return sin(solar altitude angle). i.e. -1 for 90 degrees far below horizon, 0 for horizon and 1 for vertical
SuspendServerDelegate
Tag2RichTextDelegate
A tag parser