Block
Block
extends UnlockableContent
| field | type | default | notes |
|---|---|---|---|
| hasItems | boolean | false | If true, buildings have an ItemModule. |
| hasLiquids | boolean | false | If true, buildings have a LiquidModule. |
| hasPower | boolean | false | If true, buildings have a PowerModule. |
| outputsLiquid | boolean | false | Flag for determining whether this block outputs liquid somewhere; used for connections. |
| consumesPower | boolean | true | Used by certain power blocks (nodes) to flag as non-consuming of power. True by default, even if this block has no power. |
| outputsPower | boolean | false | If true, this block is a generator that can produce power. |
| connectedPower | boolean | true | If false, power nodes cannot connect to this block. |
| conductivePower | boolean | false | If true, this block can conduct power like a cable. |
| outputsPayload | boolean | false | If true, this block can output payloads; affects blending. |
| acceptsUnitPayloads | boolean | false | If true, this block can input payloads; affects unit payload enter behavior. |
| acceptsPayload | boolean | false | If true, payloads will attempt to move into this block. |
| acceptsItems | boolean | false | Visual flag use for blending of certain transportation blocks. |
| alwaysAllowDeposit | boolean | false | If true, this block won't be affected by the onlyDepositCore rule. |
| separateItemCapacity | boolean | false | If true, all item capacities of this block are separate instead of pooled as one number. |
| itemCapacity | int | 10 | maximum items this block can carry (usually, this is per-type of item) |
| liquidCapacity | float | 10.0 | maximum total liquids this block can carry if hasLiquids = true |
| liquidPressure | float | 1.0 | higher numbers increase liquid output speed; TODO remove and replace with better liquids system |
| outputFacing | boolean | true | If true, this block outputs to its facing direction, when applicable. Used for blending calculations. |
| noSideBlend | boolean | false | if true, this block does not accept input from the sides (used for armored conveyors) |
| displayFlow | boolean | true | whether to display flow rate |
| inEditor | boolean | true | whether this block is visible in the editor |
| editorConfigurable | boolean | false | if true, {@link #buildEditorConfig(Table)} will be called for configuring this block in the editor. |
| lastConfig | Object | null | the last configuration value applied to this block. |
| saveConfig | boolean | false | whether to save the last config and apply it to newly placed blocks |
| copyConfig | boolean | true | whether to allow copying the config through middle click |
| clearOnDoubleTap | boolean | false | if true, double-tapping this configurable block clears configuration. |
| update | boolean | false | whether this block has a tile entity that updates |
| destructible | boolean | false | whether this block has health and can be destroyed |
| unloadable | boolean | true | whether unloaders work on this block |
| isDuct | boolean | false | if true, this block acts a duct and will connect to armored ducts from the side. |
| allowResupply | boolean | false | whether units can resupply by taking items from this block |
| solid | boolean | false | whether this is solid |
| solidifes | boolean | false | whether this block CAN be solid. |
| teamPassable | boolean | false | if true, this counts as a non-solid block to this team. |
| underBullets | boolean | false | if true, this block cannot be hit by bullets unless explicitly targeted. |
| rotate | boolean | false | whether this is rotatable |
| rotateDraw | boolean | true | if rotate is true and this is false, the region won't rotate when drawing |
| rotateDrawEditor | boolean | true | if rotate is true and this is false, the region won't rotate when drawing in the editor |
| visualRotationOffset | float | 0.0 | visual rotation offset used in broken plan rendering |
| lockRotation | boolean | true | if rotate = false and this is true, rotation will be locked at 0 when placing (default); advanced use only |
| ignoreLineRotation | boolean | false | if true, this block won't face the line drag direction |
| invertFlip | boolean | false | if true, schematic flips with this block are inverted. |
| variants | int | 0 | number of different variant regions to use |
| drawArrow | boolean | true | whether to draw a rotation arrow - this does not apply to lines of blocks |
| drawTeamOverlay | boolean | true | whether to draw the team corner by default |
| saveData | boolean | false | for static blocks only: if true, tile data() is saved in world data. |
| breakable | boolean | false | whether you can break this with rightclick |
| unitMoveBreakable | boolean | false | if true, this block will be broken by certain units stepping/moving over it |
| rebuildable | boolean | true | whether to add this block to brokenblocks |
| privileged | boolean | false | if true, this logic-related block can only be used with privileged processors (or is one itself) |
| requiresWater | boolean | false | whether this block can only be placed on water |
| placeableLiquid | boolean | false | whether this block can be placed on any liquids, anywhere |
| placeablePlayer | boolean | true | whether this block can be placed directly by the player via PlacementFragment |
| placeableOn | boolean | true | whether this floor can be placed on. |
| insulated | boolean | false | whether this block has insulating properties. |
| squareSprite | boolean | true | whether the sprite is a full square. |
| absorbLasers | boolean | false | whether this block absorbs laser attacks. |
| enableDrawStatus | boolean | true | if false, the status is never drawn |
| drawDisabled | boolean | true | whether to draw disabled status |
| autoResetEnabled | boolean | true | whether to automatically reset enabled status after a logic block has not interacted for a while. |
| noUpdateDisabled | boolean | false | if true, the block stops updating when disabled |
| updateInUnits | boolean | true | if true, this block updates when it's a payload in a unit. |
| alwaysUpdateInUnits | boolean | false | if true, this block updates in payloads in units regardless of the experimental game rule |
| canPickup | boolean | true | if true, this block can be picked up in payloads |
| deconstructDropAllLiquid | boolean | false | if false, only incinerable liquids are dropped when deconstructing; otherwise, all liquids are dropped. |
| useColor | boolean | true | Whether to use this block's color in the minimap. Only used for overlays. |
| itemDrop | Item | null | item that drops from this block, used for drills |
| playerUnmineable | boolean | false | if true, this block cannot be mined by players. useful for annoying things like sand. |
| attributes | Attributes | new Attributes() | Array of affinities to certain things. |
| scaledHealth | float | -1.0 | Health per square tile that this block occupies; essentially, this is multiplied by size * size. Overridden if health is > 0. If <0, the default is 40. |
| health | int | -1 | building health; -1 to use scaledHealth |
| armor | float | 0.0 | damage absorption, similar to unit armor |
| baseExplosiveness | float | 0.0 | base block explosiveness |
| explosivenessScale | float | 1.0 | scaling of explosiveness based on items/liquids |
| flammabilityScale | float | 1.0 | scaling of explosion flammability based on items/liquids |
| baseShake | float | 3.0 | base value for screen shake upon destruction |
| destroyBullet | BulletType | null | bullet that this block spawns when destroyed |
| destroyBulletSameTeam | boolean | false | if true, destroyBullet is spawned on the block's team instead of Derelict team |
| lightLiquid | Liquid | null | liquid used for lighting |
| drawCracks | boolean | true | whether cracks are drawn when this block is damaged |
| createRubble | boolean | true | whether rubble is created when this block is destroyed |
| floating | boolean | false | whether this block can be placed on edges of liquids. |
| size | int | 1 | multiblock size |
| offset | float | 0.0 | multiblock offset |
| sizeOffset | int | 0 | offset for iteration (internal use only) |
| clipSize | float | -1.0 | Clipping size of this block. Should be as large as the block will draw. |
| lightClipSize | float | 0.0 | Clipping size for lights only. |
| placeOverlapRange | float | 50.0 | When placeRangeCheck is enabled, this is the range checked for enemy blocks. |
| crushDamageMultiplier | float | 1.0 | Multiplier of damage dealt to this block by tanks. Does not apply to crawlers. |
| timers | int | 1 | Max of timers used. |
| cacheLayer | CacheLayer | normal | Cache layer. Only used for 'cached' rendering. |
| fillsTile | boolean | true | Special flag; if false, floor will be drawn under this block even if it is cached. |
| forceDark | boolean | false | If true, this block can be covered by darkness / fog even if synthetic. |
| alwaysReplace | boolean | false | whether this block can be replaced in all cases |
| replaceable | boolean | true | if false, this block can never be replaced. |
| group | BlockGroup | none | The block group. Unless {@link #canReplace} is overridden, blocks in the same group can replace each other. |
| flags | EnumSet of BlockFlag | of() | List of block flags. Used for AI indexing. |
| priority | float | 0.0 | Targeting priority of this block, as seen by enemies. |
| unitCapModifier | int | 0 | How much this block affects the unit cap by. The block flags must contain unitModifier in order for this to work. |
| configurable | boolean | false | Whether the block can be tapped and selected to configure. |
| ignoreResizeConfig | boolean | false | If true, this block does not have pointConfig with a transform called on map resize. |
| commandable | boolean | false | If true, this building can be selected like a unit when commanding. |
| allowConfigInventory | boolean | true | If true, the building inventory can be shown with the config. |
| selectionRows | int | 5 | Defines how large selection menus, such as that of sorters, should be. |
| selectionColumns | int | 4 | Defines how large selection menus, such as that of sorters, should be. |
| logicConfigurable | boolean | false | If true, this block can be configured by logic. |
| consumesTap | boolean | false | Whether this block consumes touchDown events when tapped. |
| drawLiquidLight | boolean | true | Whether to draw the glow of the liquid for this block, if it has one. |
| envRequired | int | 0 | Environmental flags that are all required for this block to function. 0 = any environment |
| envEnabled | int | 1 | The environment flags that this block can function in. If the env matches any of these, it will be enabled. |
| envDisabled | int | 0 | The environment flags that this block cannot function in. If the env matches any of these, it will be disabled. |
| sync | boolean | false | Whether to periodically sync this block across the network. |
| conveyorPlacement | boolean | false | Whether this block uses conveyor-type placement mode. |
| allowDiagonal | boolean | true | If false, diagonal placement (ctrl) for this block is not allowed. |
| swapDiagonalPlacement | boolean | false | Whether to swap the diagonal placement modes. |
| allowRectanglePlacement | boolean | false | Whether to allow rectangular placement, as opposed to a line. |
| schematicPriority | int | 0 | Build queue priority in schematics. |
| mapColor | Color | 000000ff | The color of this block when displayed on the minimap or map preview. Do not set manually! This is overridden when loading for most blocks. |
| hasColor | boolean | false | Whether this block has a minimap color. |
| targetable | boolean | true | Whether units target this block. |
| attacks | boolean | false | If true, this block attacks and is considered a turret in the indexer. Building must implement Ranged. |
| suppressable | boolean | false | If true, this block is mending-related and can be suppressed with special units/missiles. |
| canOverdrive | boolean | true | Whether the overdrive core has any effect on this block. |
| outlineColor | Color | 404049ff | Outlined icon color. |
| outlineIcon | boolean | false | Whether any icon region has an outline added. |
| outlineRadius | int | 4 | Outline icon radius. |
| outlinedIcon | int | -1 | Which of the icon regions gets the outline added. Uses last icon if <= 0. |
| hasShadow | boolean | true | Whether this block has a shadow under it. |
| customShadow | boolean | false | If true, a custom shadow (name-shadow) is drawn under this block. |
| placePitchChange | boolean | true | Should the sound made when this block is built change in pitch. |
| breakPitchChange | boolean | true | Should the sound made when this block is deconstructed change in pitch. |
| placeSound | Sound | place | Sound made when this block is built. |
| breakSound | Sound | breaks | Sound made when this block is deconstructed. |
| destroySound | Sound | boom | Sounds made when this block is destroyed. |
| destroyPitchMin | float | 1.0 | Range of destroy sound. |
| destroyPitchMax | float | 1.0 | Range of destroy sound. |
| albedo | float | 0.0 | How reflective this block is. |
| lightColor | Color | ffffffff | Environmental passive light color. |
| emitLight | boolean | false | If true, drawLight() will be called for this block. |
| lightRadius | float | 60.0 | Radius of the light emitted by this block. |
| fogRadius | int | -1 | How much fog this block uncovers, in tiles. Cannot be dynamic. <= 0 to disable. |
| ambientSound | Sound | none | The sound that this block makes while idle. Uses one sound loop for all blocks. |
| ambientSoundVolume | float | 0.05 | Idle sound base volume. |
| requirements | ItemStack[] | [] | Cost of constructing this block. |
| category | Category | distribution | Category in place menu. |
| buildTime | float | -1.0 | Time to build this block in ticks. If this value is <0, it is calculated dynamically. |
| buildVisibility | BuildVisibility | hidden | Whether this block is visible and can currently be built. |
| buildCostMultiplier | float | 1.0 | Multiplier for speed of building this block. |
| deconstructThreshold | float | 0.0 | Build completion at which deconstruction finishes. |
| instantDeconstruct | boolean | false | If true, this block deconstructs immediately. Instant deconstruction implies no resource refund. |
| instantBuild | boolean | false | If true, this block constructs immediately. This implies no resource requirement, and ignores configs - do not use, this is for performance only! |
| ignoreBuildDarkness | boolean | false | If true, this block can be placed even in "dark" areas. Only used for editor static walls. |
| placeEffect | Effect | placeBlock | Effect for placing the block. Passes size as rotation. |
| breakEffect | Effect | breakBlock | Effect for breaking the block. Passes size as rotation. |
| destroyEffect | Effect | dynamicExplosion | Effect for destroying the block. |
| researchCostMultiplier | float | 1.0 | Multiplier for cost of research in tech tree. |
| researchCostMultipliers | ObjectFloatMap of Item | new ObjectFloatMap<>() | Cost multipliers per-item. |
| researchCost | ItemStack[] | null | Override for research cost. Uses multipliers above and building requirements if not set. |
| forceTeam | Team | null | If set, all blocks will be forced to be this team. |
| instantTransfer | boolean | false | Whether this block has instant transfer. |
| quickRotate | boolean | true | Whether you can rotate this block after it is placed. |
| allowDerelictRepair | boolean | true | If true, this derelict block can be repair by clicking it. |
| subclass | Class of ? | class mindustry.world.Block | Main subclass. Non-anonymous. |
| selectScroll | float | 0.0 | Scroll position for certain blocks. |
| buildType | Prov of Building | null | Building that is created for this block. Initialized in init() via reflection. Set manually if modded. |
| configurations | ObjectMap of Class of ?, Cons2 | new ObjectMap<>() | Configuration handlers by type. |
| itemFilter | boolean[] | [] | Consumption filters. |
| liquidFilter | boolean[] | [] | Consumption filters. |
| consumers | Consume[] | [] | Array of consumers used by this block. Only populated after init(). |
| optionalConsumers | Consume[] | [] | Array of consumers used by this block. Only populated after init(). |
| nonOptionalConsumers | Consume[] | [] | Array of consumers used by this block. Only populated after init(). |
| updateConsumers | Consume[] | [] | Array of consumers used by this block. Only populated after init(). |
| hasConsumers | boolean | false | Set to true if this block has any consumers in its array. |
| consPower | ConsumePower | null | The single power consumer, if applicable. |
| regionRotated1 | int | -1 | Regions indexes from icons() that are rotated. If either of these is not -1, other regions won't be rotated in ConstructBlocks. |
| regionRotated2 | int | -1 | Regions indexes from icons() that are rotated. If either of these is not -1, other regions won't be rotated in ConstructBlocks. |
| region | TextureRegion | null | |
| customShadowRegion | TextureRegion | null | |
| teamRegion | TextureRegion | null | |
| teamRegions | TextureRegion[] | null | |
| variantRegions | TextureRegion[] | null | |
| variantShadowRegions | TextureRegion[] | null | |
| dumpTime | int | 5 | How often to try dumping items in ticks, e.g. 5 = 12 times/sec |