minecraft-bedrock-json-types
Version:
Typescript types for Minecraft Bedrock's add-on json configuration files.
740 lines (739 loc) • 19 kB
TypeScript
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run json-schema-to-typescript to regenerate this file.
*/
/**
* A version that tells minecraft what type of data format can be expected when reading this file.
*/
type FormatVersion = string;
/**
* Materials used for the surface ceiling.
*
* @minItems 1
*/
type CeilingMaterials = [BlockReference, ...(BlockReference)[]];
/**
* A block reference.
*/
type BlockReference = string;
/**
* Materials used for the surface floor.
*
* @minItems 1
*/
type FloorMaterials = [BlockReference1, ...(BlockReference1)[]];
/**
* A block reference.
*/
type BlockReference1 = string;
/**
* Material used to replace air blocks below sea level.
*/
type SeaMaterial = string;
/**
* Material used to repalce solid blocks that are not surface blocks.
*/
type FoundationMaterial = string;
/**
* Material used to decorate surface near sea level.
*/
type BeachMaterial = string;
/**
* UNDOCUMENTED.
*/
type Temperature = number;
/**
* UNDOCUMENTED.
*/
type Downfall = number;
/**
* UNDOCUMENTED.
*/
type RedSpores = number;
/**
* UNDOCUMENTED.
*/
type BlueSpores = number;
/**
* UNDOCUMENTED.
*/
type Ash = number;
/**
* UNDOCUMENTED.
*/
type WhiteAsh = number;
/**
* UNDOCUMENTED.
*/
type SnowAccumulation = [] | [number] | [number, number];
/**
* The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to `xzy`.
*/
type CoordinateEvalOrder = ("xyz" | "xzy" | "yxz" | "yzx" | "zxy" | "zyx");
/**
* UNDOCUMENTED.
*/
type Identifier = string;
/**
* Number of scattered positions to generate.
*/
type Iterations = (string | number);
/**
* UNDOCUMENTED.
*/
type PlacesFeature = string;
type ScatterChance = ({
denominator?: Denominator;
numerator?: Numerator;
} | MolangNumber | number);
/**
* UNDOCUMENTED.
*/
type Denominator = number;
/**
* UNDOCUMENTED.
*/
type Numerator = number;
/**
* Probability (0-100) that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.
*/
type MolangNumber = (MolangNumber1 & MolangNumber2);
type MolangNumber1 = (string | number);
type MolangNumber2 = string;
type X = (MolangNumber3 | number | {
distribution: Distribution;
extent: Extent;
grid_offset?: StepSize;
step_size?: StepSize1;
});
/**
* Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below.
*/
type MolangNumber3 = (MolangNumber4 & MolangNumber5);
type MolangNumber4 = (string | number);
type MolangNumber5 = string;
/**
* Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered).
*/
type Distribution = ("uniform" | "gaussian" | "inverse_gaussian" | "triangle" | "fixed_grid" | "jittered_grid");
/**
* UNDOCUMENTED.
*/
type Extent = [] | [LowerBound] | [LowerBound, UpperBound];
/**
* Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around.
*/
type LowerBound = (string | number);
/**
* Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around.
*/
type UpperBound = (string | number);
/**
* When the distribution type is grid, defines the offset along this axis.
*/
type StepSize = number;
/**
* When the distribution type is grid, defines the distance between steps along this axis.
*/
type StepSize1 = number;
type X1 = (MolangNumber6 | number | {
distribution: Distribution;
extent: Extent;
grid_offset?: StepSize;
step_size?: StepSize1;
});
type MolangNumber6 = (MolangNumber4 & MolangNumber5);
type X2 = (MolangNumber7 | number | {
distribution: Distribution;
extent: Extent;
grid_offset?: StepSize;
step_size?: StepSize1;
});
type MolangNumber7 = (MolangNumber4 & MolangNumber5);
/**
* UNDOCUMENTED.
*/
type FirstPass = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass1 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass2 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass3 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass4 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass5 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass6 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass7 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass8 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass9 = Iteration[];
/**
* UNDOCUMENTED.
*/
type FirstPass10 = Iteration[];
/**
* Controls how deep below the world water level the floor should occur.
*/
type SeaFloorDepth = number;
/**
* Controls how deep below the world water level the floor should occur.
*/
type SeaFloorDepth1 = number;
/**
* UNDOCUMENTED.
*/
type ClayMaterial = string;
/**
* UNDOCUMENTED.
*/
type HardClayMaterial = string;
/**
* UNDOCUMENTED.
*/
type BrycePillars = boolean;
/**
* UNDOCUMENTED.
*/
type HasForest = boolean;
/**
* UNDOCUMENTED.
*/
type PeaksFactor = number;
/**
* Block type use as steep material.
*/
type Material = string;
/**
* Enable for north facing slopes.
*/
type NorthSlopes = boolean;
/**
* Enable for south facing slopes.
*/
type SouthSlopes = boolean;
/**
* Enable for west facing slopes.
*/
type WestSlopes = boolean;
/**
* Enable for east facing slopes.
*/
type EastSlopes = boolean;
/**
* Temperature with which this biome should selected, relative to other biomes.
*/
type TargetTemperature = number;
/**
* Humidity with which this biome should selected, relative to other biomes.
*/
type TargetHumidity = number;
/**
* Altitude with which this biome should selected, relative to other biomes.
*/
type TargetAltitude = number;
/**
* Weirdness with which this biome should selected, relative to other biomes.
*/
type TargetWeirdness = number;
/**
* Weight with which this biome should selected, relative to other biomes.
*/
type Weight = number;
/**
* UNDOCUMENTED.
*/
type HillsTransformation = (BlockReference2 | BlockReference3);
/**
* UNDOCUMENTED.
*/
type BlockReference2 = string;
/**
* UNDOCUMENTED.
*
* @minItems 1
*/
type BlockReference3 = [(BlockReference4 | [] | [BiomeReference] | [BiomeReference, _]), ...((BlockReference4 | [] | [BiomeReference] | [BiomeReference, _]))[]];
/**
* UNDOCUMENTED.
*/
type BlockReference4 = string;
/**
* UNDOCUMENTED.
*/
type BiomeReference = string;
/**
* UNDOCUMENTED.
*/
type _ = number;
/**
* UNDOCUMENTED.
*/
type MutateTransformation = (BlockReference2 | BlockReference3);
/**
* UNDOCUMENTED.
*/
type RiverTransformation = (BlockReference2 | BlockReference3);
/**
* UNDOCUMENTED.
*/
type ShoreTransformation = (BlockReference2 | BlockReference3);
/**
* UNDOCUMENTED.
*/
type _1 = [] | [ClimateCategory] | [ClimateCategory, Weight1];
/**
* Name of a climate category.
*/
type ClimateCategory = ("medium" | "warm" | "lukewarm" | "cold" | "frozen");
/**
* Weight with which this biome should be selected, relative to other biomes in the same category.
*/
type Weight1 = number;
/**
* Controls the world generation climate categories that this biome can spawn for. A single biome can be associated with multiple categories with different weightings.
*/
type GenerateForClimates = _1[];
/**
* UNDOCUMENTED.
*/
type NoiseParams = [] | [number] | [number, number];
/**
* UNDOCUMENTED.
*/
type NoiseType = ("stone_beach" | "deep_ocean" | "default" | "default_mutated" | "lowlands" | "river" | "ocean" | "taiga" | "mountains" | "highlands" | "mushroom" | "less_extreme" | "extreme" | "beach" | "swamp");
/**
* Defines a range of noise values [min, max] for which this adjustment should be applied.
*/
type HeightRange = [] | [Min] | [Min, Max];
/**
* The minecraft molang definition that results in a float.
*/
type Min = (string | number);
/**
* The minecraft molang definition that results in a float.
*/
type Max = (string | number);
/**
* Controls the block type used for the surface of this biome when this adjustment is active.
*/
type TopMaterial2 = string;
/**
* Controls the block type used in a layer below the surface of this biome when this adjustment is active.
*/
type MidMaterial2 = string;
/**
* Controls the block type used as a floor for bodies of water in this biome when this adjustment is active.
*/
type SeaFloorMaterial2 = string;
/**
* Controls the block type used deep underground in this biome when this adjustment is active.
*/
type TopMaterials = string;
/**
* Controls the block type used in the bodies of water in this biome when this adjustment is active.
*/
type TopMaterials1 = string;
/**
* Defines a range of noise values [min, max] for which this adjustment should be applied.
*/
type NoiseRange = [] | [Min1] | [Min1, Max1];
/**
* All adjustments that match the column's noise values will be applied in the order listed.
*/
type Adjustments = Adjustment[];
/**
* Controls how deep below the world water level the floor should occur.
*/
type SeaFloorDepth2 = number;
/**
* Controls how deep below the world water level the floor should occur.
*/
type SeaFloorDepth3 = number;
export interface Biome {
[k: string]: Biomes;
}
/**
* The definition of a biome.
*/
interface Biomes {
format_version?: FormatVersion;
"minecraft:capped_surface"?: CappedSurface;
"minecraft:climate"?: Climate;
"minecraft:consolidated_features"?: ConsolidatedFeatures;
"minecraft:forced_features"?: ForcedFeatures;
"minecraft:frozen_ocean_surface"?: FrozenOceanSurface;
"minecraft:ignore_automatic_features"?: IgnoreAutomaticFeatures;
"minecraft:legacy_world_generation_rules"?: LegacyWorldGenerationRules;
"minecraft:mesa_surface"?: MesaSurface;
"minecraft:mountain_parameters"?: MountainParameters;
"minecraft:nether_generation_rules"?: NetherGenerationRules;
"minecraft:nether_surface"?: NetherSurface;
"minecraft:overworld_generation_rules"?: OverworldGenerationRules;
"minecraft:overworld_height"?: OverworldHeight;
"minecraft:surface_material_adjustments"?: SurfaceMaterialAdjustments;
"minecraft:surface_parameters"?: SurfaceParameters;
"minecraft:swamp_surface"?: SwampSurface;
"minecraft:the_end_surface"?: EndSurface;
[k: string]: Tag;
}
/**
* Generates surface on blocks with non-solid blocks above or below.
*/
interface CappedSurface {
ceiling_materials: CeilingMaterials;
floor_materials: FloorMaterials;
sea_material: SeaMaterial;
foundation_material: FoundationMaterial;
beach_material?: BeachMaterial;
}
/**
* Describes temperature, humidity, precipitation, etc. Biomes without this component will have default values.
*/
interface Climate {
temperature?: Temperature;
downfall?: Downfall;
red_spores?: RedSpores;
blue_spores?: BlueSpores;
ash?: Ash;
white_ash?: WhiteAsh;
snow_accumulation?: SnowAccumulation;
}
/**
* UNDOCUMENTED
*/
interface ConsolidatedFeatures {
}
/**
* Force specific decorative features (trees, plants, etc.) to appear in this Biome, regardless of normal decoration rules.
*/
interface ForcedFeatures {
after_sky_pass?: FirstPass;
after_surface_pass?: FirstPass1;
after_underground_pass?: FirstPass2;
before_sky_pass?: FirstPass3;
before_surface_pass?: FirstPass4;
before_underground_pass?: FirstPass5;
final_pass?: FirstPass6;
first_pass?: FirstPass7;
surface_pass?: FirstPass8;
sky_pass?: FirstPass9;
underground_pass?: FirstPass10;
}
/**
* UNDOCUMENTED.
*/
interface Iteration {
coordinate_eval_order?: CoordinateEvalOrder;
identifier: Identifier;
iterations: Iterations;
places_feature: PlacesFeature;
scatter_chance?: ScatterChance;
x?: X;
y?: X1;
z?: X2;
}
/**
* Similar to overworld_surface. Adds icebergs.
*/
interface FrozenOceanSurface {
top_material?: TopMaterial;
mid_material?: MidMaterial;
sea_floor_material?: SeaFloorMaterial;
foundation_material?: FoundationMaterial1;
sea_material?: SeaMaterial1;
sea_floor_depth?: SeaFloorDepth;
}
/**
* Controls the block type used for the surface of this biome.
*/
interface TopMaterial {
[k: string]: unknown;
}
/**
* Controls the block type used in a layer below the surface of this biome.
*/
interface MidMaterial {
[k: string]: unknown;
}
/**
* Controls the block type used as a floor for bodies of water in this biome.
*/
interface SeaFloorMaterial {
[k: string]: unknown;
}
/**
* Controls the block type used deep underground in this biome.
*/
interface FoundationMaterial1 {
[k: string]: unknown;
}
/**
* Controls the block type used for the bodies of water in this biome.
*/
interface SeaMaterial1 {
[k: string]: unknown;
}
/**
* No features will be automatically attached to this Biome, only features specified in the minecraft:forced_features component will appear.
*/
interface IgnoreAutomaticFeatures {
}
/**
* Additional world generation control applicable only to legacy limited worlds.
*/
interface LegacyWorldGenerationRules {
}
/**
* Similar to overworld_surface. Adds colored strata and optional pillars.
*/
interface MesaSurface {
top_material?: TopMaterial1;
mid_material?: MidMaterial1;
sea_floor_material?: SeaFloorMaterial1;
foundation_material?: FoundationMaterial2;
sea_material?: SeaMaterial2;
sea_floor_depth?: SeaFloorDepth1;
clay_material?: ClayMaterial;
hard_clay_material?: HardClayMaterial;
bryce_pillars?: BrycePillars;
has_forest?: HasForest;
}
/**
* Controls the block type used for the surface of this biome.
*/
interface TopMaterial1 {
[k: string]: unknown;
}
/**
* Controls the block type used in a layer below the surface of this biome.
*/
interface MidMaterial1 {
[k: string]: unknown;
}
/**
* Controls the block type used as a floor for bodies of water in this biome.
*/
interface SeaFloorMaterial1 {
[k: string]: unknown;
}
/**
* Controls the block type used deep underground in this biome.
*/
interface FoundationMaterial2 {
[k: string]: unknown;
}
/**
* Controls the block type used for the bodies of water in this biome.
*/
interface SeaMaterial2 {
[k: string]: unknown;
}
/**
* Noise parameters used to drive mountain terrain generation in Overworld.
*/
interface MountainParameters {
peaks_factor?: PeaksFactor;
steep_material_adjustment?: SteepMaterialAdjustment;
top_slide?: TopSlide;
}
/**
* Defines surface material for steep slopes.
*/
interface SteepMaterialAdjustment {
material?: Material;
north_slopes?: NorthSlopes;
south_slopes?: SouthSlopes;
west_slopes?: WestSlopes;
east_slopes?: EastSlopes;
}
/**
* Controls the density tapering that happens at the top of the world to prevent terrain from reaching too high.
*/
interface TopSlide {
enabled?: Enabled;
}
/**
* If false, top slide will be disabled. If true, other parameters will be taken into account
*/
interface Enabled {
[k: string]: unknown;
}
/**
* Controls how this biome is instantiated (and then potentially modified) during world generation of the nether.
*/
interface NetherGenerationRules {
target_temperature?: TargetTemperature;
target_humidity?: TargetHumidity;
target_altitude?: TargetAltitude;
target_weirdness?: TargetWeirdness;
weight?: Weight;
}
/**
* Use default Minecraft Nether terrain generation.
*/
interface NetherSurface {
}
/**
* Control how this biome is instantiated (and then potentially modified) during world generation of the overworld.
*/
interface OverworldGenerationRules {
hills_transformation?: HillsTransformation;
mutate_transformation?: MutateTransformation;
river_transformation?: RiverTransformation;
shore_transformation?: ShoreTransformation;
generate_for_climates?: GenerateForClimates;
}
/**
* Noise parameters used to drive terrain height in the Overworld.
*/
interface OverworldHeight {
noise_params?: NoiseParams;
noise_type?: NoiseType;
}
/**
* Specify fine-detail changes to blocks used in terrain generation (based on a noise function).
*/
interface SurfaceMaterialAdjustments {
adjustments?: Adjustments;
}
/**
* UNDOCUMENTED.
*/
interface Adjustment {
height_range?: HeightRange;
materials?: Materials;
noise_range?: NoiseRange;
}
/**
* UNDOCUMENTED.
*/
interface Materials {
top_material?: TopMaterial2;
mid_material?: MidMaterial2;
sea_floor_material?: SeaFloorMaterial2;
foundation_material?: TopMaterials;
sea_material?: TopMaterials1;
}
interface Min1 {
[k: string]: unknown;
}
interface Max1 {
[k: string]: unknown;
}
/**
* Control the blocks used for the default Minecraft Overworld terrain generation.
*/
interface SurfaceParameters {
top_material?: TopMaterial3;
mid_material?: MidMaterial3;
sea_floor_material?: SeaFloorMaterial3;
foundation_material?: FoundationMaterial3;
sea_material?: SeaMaterial3;
sea_floor_depth?: SeaFloorDepth2;
}
/**
* Controls the block type used for the surface of this biome.
*/
interface TopMaterial3 {
[k: string]: unknown;
}
/**
* Controls the block type used in a layer below the surface of this biome.
*/
interface MidMaterial3 {
[k: string]: unknown;
}
/**
* Controls the block type used as a floor for bodies of water in this biome.
*/
interface SeaFloorMaterial3 {
[k: string]: unknown;
}
/**
* Controls the block type used deep underground in this biome.
*/
interface FoundationMaterial3 {
[k: string]: unknown;
}
/**
* Controls the block type used for the bodies of water in this biome.
*/
interface SeaMaterial3 {
[k: string]: unknown;
}
/**
* Similar to overworld_surface. Adds swamp surface details.
*/
interface SwampSurface {
top_material?: TopMaterial4;
mid_material?: MidMaterial4;
sea_floor_material?: SeaFloorMaterial4;
foundation_material?: FoundationMaterial4;
sea_material?: SeaMaterial4;
sea_floor_depth?: SeaFloorDepth3;
}
/**
* Controls the block type used for the surface of this biome.
*/
interface TopMaterial4 {
[k: string]: unknown;
}
/**
* Controls the block type used in a layer below the surface of this biome.
*/
interface MidMaterial4 {
[k: string]: unknown;
}
/**
* Controls the block type used as a floor for bodies of water in this biome.
*/
interface SeaFloorMaterial4 {
[k: string]: unknown;
}
/**
* Controls the block type used deep underground in this biome.
*/
interface FoundationMaterial4 {
[k: string]: unknown;
}
/**
* Controls the block type used for the bodies of water in this biome.
*/
interface SeaMaterial4 {
[k: string]: unknown;
}
/**
* Use default Minecraft End terrain generation.
*/
interface EndSurface {
}
/**
* Components with no namespace are treated as `tags': any name consisting of alphanumeric characters, `.` and `_` is permitted; the tag is attached to the biome so that either code or data may check for its existence; tag components may not have member fields.
*/
interface Tag {
}
export {};