@mbler/mcx-core 0.1.0 → 0.1.1-beta.r2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/index.d.ts +4569 -4403
  2. package/dist/index.js +4326 -3274
  3. package/dist/index.js.map +1 -1
  4. package/dist/types/ast/index.d.ts +2 -2
  5. package/dist/types/ast/prop.d.ts +1 -1
  6. package/dist/types/ast/tag.d.ts +1 -1
  7. package/dist/types/compile-mcx/compiler/compileData.d.ts +3 -3
  8. package/dist/types/compile-mcx/compiler/index.d.ts +11 -11
  9. package/dist/types/compile-mcx/compiler/utils.d.ts +3 -3
  10. package/dist/types/compile-mcx/index.d.ts +1 -1
  11. package/dist/types/compile-mcx/types.d.ts +6 -6
  12. package/dist/types/compile-mcx/utils.node.d.ts +6 -6
  13. package/dist/types/index.d.ts +9 -9
  14. package/dist/types/mcx-component/components/entity.d.ts +12 -12
  15. package/dist/types/mcx-component/components/item.d.ts +91 -4
  16. package/dist/types/mcx-component/index.d.ts +16 -4
  17. package/dist/types/mcx-component/lib.d.ts +4 -4
  18. package/dist/types/mcx-component/types/EnchantableSlot.d.ts +1 -1
  19. package/dist/types/mcx-component/types/ParticleType.d.ts +1 -1
  20. package/dist/types/mcx-component/types/SoundEvent.d.ts +1 -1
  21. package/dist/types/mcx-component/types.d.ts +242 -163
  22. package/dist/types/mcx-component/vm.d.ts +1 -1
  23. package/dist/types/transforms/index.d.ts +5 -5
  24. package/dist/types/transforms/main.d.ts +1 -1
  25. package/dist/types/transforms/utils.d.ts +4 -4
  26. package/dist/types/transforms/x-comp/index.d.ts +3 -3
  27. package/dist/types/transforms/x-comp/x-app.d.ts +1 -1
  28. package/dist/types/transforms/x-comp/x-event.d.ts +1 -1
  29. package/dist/types/transforms/x-comp/x-ui.d.ts +1 -1
  30. package/dist/types/types.d.ts +9 -9
  31. package/dist/types/utils.d.ts +1 -12
  32. package/package.json +7 -2
@@ -1,15 +1,81 @@
1
- import ParticleType from "./types/ParticleType";
2
- import SoundEvent from "./types/SoundEvent";
3
- import EnchantableSlot from "./types/EnchantableSlot";
4
- interface ItemComponentOpt {
1
+ import ParticleType from './types/ParticleType';
2
+ import SoundEvent from './types/SoundEvent';
3
+ import EnchantableSlot from './types/EnchantableSlot';
4
+ import type { PNGImageComponent } from './lib';
5
+ export interface FilePoint {
6
+ /**
7
+ * Edit file path base
8
+ */
9
+ base: 'behavior' | 'resources' | 'root';
10
+ /**
11
+ * <BASE>/$file
12
+ */
13
+ file: string;
14
+ }
15
+ export interface FileBindSource {
16
+ /**
17
+ * Bind some value
18
+ * Mcx can write to file
19
+ */
20
+ bind: 'item_texture';
21
+ /**
22
+ * Set bind value mode
23
+ * @example type = "append"; bind value => array (append expression return)
24
+ * @example type = "all_replace" bind value => unknown (all replace)
25
+ */
26
+ type: 'append' | 'all_replace';
27
+ }
28
+ export type DefineEntry = {
29
+ from: 'var';
30
+ data: string;
31
+ } | {
32
+ from: 'read_file';
33
+ data: FilePoint;
34
+ default?: string;
35
+ };
36
+ export type FileEditExpression<T extends Record<string, DefineEntry> = Record<string, DefineEntry>> = {
37
+ define: T;
38
+ run: (define: {
39
+ [K in keyof T]: string;
40
+ }) => Promise<string | string[] | [string, string][]>;
41
+ };
42
+ export declare function createFileEdit<T extends Record<string, DefineEntry>>(expression: {
43
+ define: T;
44
+ run: (define: {
45
+ [K in keyof T]: string;
46
+ }) => Promise<string | string[] | [string, string][]>;
47
+ }): FileEditExpression<T>;
48
+ export type FileEditOption = {
49
+ type: 'edit';
50
+ id?: string;
51
+ source: FilePoint | FileBindSource;
52
+ expression: FileEditExpression<any>;
53
+ } | {
54
+ type: 'copy_assets';
55
+ id?: string;
56
+ source: FilePoint;
57
+ output: FilePoint;
58
+ };
59
+ export interface BaseJson {
60
+ format_version: string;
61
+ _meta: {
62
+ type: 'item' | 'entity';
63
+ file_edit?: (FileEditOption | {
64
+ type: 'batch';
65
+ options: FileEditOption[];
66
+ id?: string;
67
+ })[];
68
+ };
69
+ }
70
+ interface ItemComponentOptions {
5
71
  id: string;
6
72
  name: string;
7
73
  format: string;
8
74
  components: Partial<{
9
75
  offHand: boolean;
10
76
  damage: number;
11
- DestroyInCreate: boolean;
12
- icon: string;
77
+ canDestroyInCreative: boolean;
78
+ icon: string | PNGImageComponent;
13
79
  block_placer?: {
14
80
  aligned_placement?: boolean;
15
81
  block: string;
@@ -35,10 +101,10 @@ interface ItemComponentOpt {
35
101
  * Enables an item to store data of the dynamic container associated with it.
36
102
  * A dynamic container is a container for storing items that is linked to an item instead of a block or an entity.
37
103
  *
38
- * 注意:While this component can be defined on its own, to be able to interact with the item's storage container
104
+ * Tip:While this component can be defined on its own, to be able to interact with the item's storage container
39
105
  * the item must have a minecraft:bundle_interaction item component defined.
40
106
  *
41
- * 注意:This item requires a format version of at least 1.21.40.
107
+ * Tip:This item requires a format version of at least 1.21.40.
42
108
  *
43
109
  * @example {
44
110
  * "max_slots": 64,
@@ -831,8 +897,7 @@ interface FoodEffect {
831
897
  name?: string;
832
898
  }
833
899
  type ItemGroupEnum = 'minecraft:itemGroup.name.planks' | 'minecraft:itemGroup.name.walls' | 'minecraft:itemGroup.name.fence' | 'minecraft:itemGroup.name.fenceGate' | 'minecraft:itemGroup.name.glass' | 'minecraft:itemGroup.name.trapdoor' | 'minecraft:itemGroup.name.door' | 'minecraft:itemGroup.name.stairs' | 'minecraft:itemGroup.name.glassPane' | 'minecraft:itemGroup.name.slab' | 'minecraft:itemGroup.name.stoneBrick' | 'minecraft:itemGroup.name.sandstone' | 'minecraft:itemGroup.name.copper' | 'minecraft:itemGroup.name.wool' | 'minecraft:itemGroup.name.woolCarpet' | 'minecraft:itemGroup.name.concretePowder' | 'minecraft:itemGroup.name.concrete' | 'minecraft:itemGroup.name.stainedClay' | 'minecraft:itemGroup.name.glazedTerracotta' | 'minecraft:itemGroup.name.ore' | 'minecraft:itemGroup.name.stone' | 'minecraft:itemGroup.name.log' | 'minecraft:itemGroup.name.wood' | 'minecraft:itemGroup.name.leaves' | 'minecraft:itemGroup.name.sapling' | 'minecraft:itemGroup.name.seed' | 'minecraft:itemGroup.name.crop' | 'minecraft:itemGroup.name.grass' | 'minecraft:itemGroup.name.coral_decorations' | 'minecraft:itemGroup.name.flower' | 'minecraft:itemGroup.name.dye' | 'minecraft:itemGroup.name.rawFood' | 'minecraft:itemGroup.name.mushroom' | 'minecraft:itemGroup.name.monsterStoneEgg' | 'minecraft:itemGroup.name.mobEgg' | 'minecraft:itemGroup.name.coral' | 'minecraft:itemGroup.name.sculk' | 'minecraft:itemGroup.name.helmet' | 'minecraft:itemGroup.name.chestplate' | 'minecraft:itemGroup.name.leggings' | 'minecraft:itemGroup.name.boots' | 'minecraft:itemGroup.name.sword' | 'minecraft:itemGroup.name.axe' | 'minecraft:itemGroup.name.pickaxe' | 'minecraft:itemGroup.name.shovel' | 'minecraft:itemGroup.name.hoe' | 'minecraft:itemGroup.name.arrow' | 'minecraft:itemGroup.name.cookedFood' | 'minecraft:itemGroup.name.miscFood' | 'minecraft:itemGroup.name.goatHorn' | 'minecraft:itemGroup.name.bundles' | 'minecraft:itemGroup.name.horseArmor' | 'minecraft:itemGroup.name.potion' | 'minecraft:itemGroup.name.splashPotion' | 'minecraft:itemGroup.name.lingeringPotion' | 'minecraft:itemGroup.name.ominousBottle' | 'minecraft:itemGroup.name.bed' | 'minecraft:itemGroup.name.candles' | 'minecraft:itemGroup.name.anvil' | 'minecraft:itemGroup.name.chest' | 'minecraft:itemGroup.name.shulkerBox' | 'minecraft:itemGroup.name.record' | 'minecraft:itemGroup.name.sign' | 'minecraft:itemGroup.name.hanging_sign' | 'minecraft:itemGroup.name.skull' | 'minecraft:itemGroup.name.boat' | 'minecraft:itemGroup.name.chestboat' | 'minecraft:itemGroup.name.rail' | 'minecraft:itemGroup.name.minecart' | 'minecraft:itemGroup.name.buttons' | 'minecraft:itemGroup.name.pressurePlate' | 'minecraft:itemGroup.name.banner_pattern' | 'minecraft:itemGroup.name.potterySherds' | 'minecraft:itemGroup.name.smithing_templates';
834
- interface ItemJSON {
835
- format_version: string;
900
+ interface ItemJson extends BaseJson {
836
901
  'minecraft:item': {
837
902
  description: {
838
903
  identifier: string;
@@ -855,7 +920,9 @@ interface ItemJSON {
855
920
  type: 'use' | 'attack';
856
921
  };
857
922
  'minecraft:damage'?: JSONValue<number>;
858
- 'minecraft:icon'?: JSONValue<string>;
923
+ 'minecraft:icon'?: {
924
+ textures: string;
925
+ };
859
926
  'minecraft:block_placer'?: {
860
927
  aligned_placement?: boolean;
861
928
  block: string;
@@ -1621,12 +1688,22 @@ interface ItemJSON {
1621
1688
  };
1622
1689
  };
1623
1690
  }
1624
- export type { ItemComponentOpt, ItemGroupEnum, ItemJSON, ParticleType, SoundEvent, EnchantableSlot, RepairItem, RepairAmountExpression, SeedProperties, };
1691
+ export type { ItemComponentOptions, ItemGroupEnum, ItemJson, ParticleType, SoundEvent, EnchantableSlot, RepairItem, RepairAmountExpression, SeedProperties, };
1692
+ /** @deprecated Use ItemComponentOptions instead */
1693
+ export type { ItemComponentOptions as ItemComponentOpt };
1694
+ /** @deprecated Use ItemJson instead */
1695
+ export type { ItemJson as ItemJSON };
1696
+ /** @deprecated Use FileEditOption instead */
1697
+ export type { FileEditOption as EditFileOption };
1698
+ /** @deprecated Use FileEditExpression instead */
1699
+ export type { FileEditExpression as EditFileEditExpression };
1700
+ /** @deprecated Use FileBindSource instead */
1701
+ export type { FileBindSource as EditFileBindSourceExpression };
1625
1702
  type Rarity = 'common' | 'uncommon' | 'rare' | 'epic';
1626
1703
  declare const RarityEnum: readonly ["common", "uncommon", "rare", "epic"];
1627
- export { SoundEventEnum } from "./types/SoundEvent";
1628
- export { ParticleTypeEnum } from "./types/ParticleType";
1629
- export { EnchantableSlotEnum } from "./types/EnchantableSlot";
1704
+ export { SoundEventEnum } from './types/SoundEvent';
1705
+ export { ParticleTypeEnum } from './types/ParticleType';
1706
+ export { EnchantableSlotEnum } from './types/EnchantableSlot';
1630
1707
  export { RarityEnum };
1631
1708
  export type { Rarity };
1632
1709
  type PlantFace = 'UP' | 'DOWN';
@@ -1694,7 +1771,7 @@ declare const SeedPropertiesSchema: {
1694
1771
  readonly plant_at_any_solid_surface: "boolean";
1695
1772
  readonly plant_at_face: "\"UP\" | \"DOWN\"";
1696
1773
  };
1697
- interface EntityComponentOpt {
1774
+ interface EntityComponentOptions {
1698
1775
  id: string;
1699
1776
  format: string;
1700
1777
  is_spawnable?: boolean;
@@ -1722,7 +1799,7 @@ interface EntityComponentOpt {
1722
1799
  /**
1723
1800
  * Allows an entity to ignore attackable targets for a given duration.
1724
1801
  */
1725
- "minecraft:admire_item"?: {
1802
+ 'minecraft:admire_item'?: {
1726
1803
  /** Duration, in seconds, for which mob won't admire items if it was hurt */
1727
1804
  cooldown_after_being_attacked?: number;
1728
1805
  /** Duration, in seconds, that the mob is pacified */
@@ -1732,7 +1809,7 @@ interface EntityComponentOpt {
1732
1809
  * Adds a timer for the entity to grow up. It can be accelerated by giving the entity
1733
1810
  * the items it likes as defined by feed_items.
1734
1811
  */
1735
- "minecraft:ageable"?: {
1812
+ 'minecraft:ageable'?: {
1736
1813
  /** List of items that are dropped when an entity grows up */
1737
1814
  drop_items?: string[];
1738
1815
  /** Length of time before an entity grows up (-1 to always stay a baby) */
@@ -1760,7 +1837,7 @@ interface EntityComponentOpt {
1760
1837
  /**
1761
1838
  * Delay for an entity playing its sound.
1762
1839
  */
1763
- "minecraft:ambient_sound_interval"?: {
1840
+ 'minecraft:ambient_sound_interval'?: {
1764
1841
  /** Level sound event to be played as the ambient sound. */
1765
1842
  event_name?: string;
1766
1843
  /**
@@ -1778,7 +1855,7 @@ interface EntityComponentOpt {
1778
1855
  /** Minimum time in seconds before the entity plays its ambient sound again. */
1779
1856
  value?: number;
1780
1857
  };
1781
- "minecraft:attack_damage"?: {
1858
+ 'minecraft:attack_damage'?: {
1782
1859
  value?: number | {
1783
1860
  min: number;
1784
1861
  max: number;
@@ -1787,7 +1864,7 @@ interface EntityComponentOpt {
1787
1864
  /**
1788
1865
  * Compels the entity to track anger towards a set of nuisances.
1789
1866
  */
1790
- "minecraft:anger_level"?: {
1867
+ 'minecraft:anger_level'?: {
1791
1868
  /** Anger level will decay over time. Defines how often anger towards all nuisances will decrease by one. */
1792
1869
  anger_decrement_interval?: number;
1793
1870
  /** Anger boost applied to angry threshold when mob gets angry Value must be >= 0. */
@@ -1841,7 +1918,7 @@ interface EntityComponentOpt {
1841
1918
  /**
1842
1919
  * Defines an entity's 'angry' state using a timer.
1843
1920
  */
1844
- "minecraft:angry"?: {
1921
+ 'minecraft:angry'?: {
1845
1922
  /** The sound event to play when the mob is angry */
1846
1923
  angry_sound?: string;
1847
1924
  /** If set, other entities of the same entity definition within the broadcastRange will also become angry */
@@ -1877,16 +1954,16 @@ interface EntityComponentOpt {
1877
1954
  };
1878
1955
  /**
1879
1956
  * Allows an entity to break doors, assuming that that flags set up for the component to use in navigation.
1880
- * 注意: Requires the entity's navigation component to have the parameter can_break_doors set to true.
1957
+ * Tip: Requires the entity's navigation component to have the parameter can_break_doors set to true.
1881
1958
  */
1882
- "minecraft:annotation.break_door"?: {
1959
+ 'minecraft:annotation.break_door'?: {
1883
1960
  /** The time in seconds required to break through doors. */
1884
1961
  break_time?: number;
1885
1962
  /** The minimum difficulty that the world must be on for this entity to break doors. */
1886
1963
  min_difficulty?: 'hard' | 'normal' | 'easy' | 'peaceful';
1887
1964
  };
1888
- "minecraft:annotation.open_door"?: {};
1889
- "minecraft:attack"?: {
1965
+ 'minecraft:annotation.open_door'?: {};
1966
+ 'minecraft:attack'?: {
1890
1967
  damage?: number | [number, number] | {
1891
1968
  range_min: number;
1892
1969
  range_max: number;
@@ -1894,7 +1971,7 @@ interface EntityComponentOpt {
1894
1971
  effect_duration?: number;
1895
1972
  effect_name?: string;
1896
1973
  };
1897
- "minecraft:area_attack"?: {
1974
+ 'minecraft:area_attack'?: {
1898
1975
  cause?: string;
1899
1976
  damage_cooldown?: number;
1900
1977
  damage_per_tick?: number;
@@ -1902,7 +1979,7 @@ interface EntityComponentOpt {
1902
1979
  entity_filter?: any;
1903
1980
  play_attack_sound?: boolean;
1904
1981
  };
1905
- "minecraft:attack_cooldown"?: {
1982
+ 'minecraft:attack_cooldown'?: {
1906
1983
  attack_cooldown_complete_event?: string | {
1907
1984
  event: string;
1908
1985
  target?: string;
@@ -1912,22 +1989,22 @@ interface EntityComponentOpt {
1912
1989
  max: number;
1913
1990
  };
1914
1991
  };
1915
- "minecraft:balloonable"?: {
1992
+ 'minecraft:balloonable'?: {
1916
1993
  mass?: number;
1917
1994
  max_distance?: number;
1918
1995
  on_balloon?: any;
1919
1996
  on_unballoon?: any;
1920
1997
  soft_distance?: number;
1921
1998
  };
1922
- "minecraft:barter"?: {
1999
+ 'minecraft:barter'?: {
1923
2000
  barter_table?: string;
1924
2001
  cooldown_after_being_attacked?: {
1925
2002
  min: number;
1926
2003
  max: number;
1927
2004
  };
1928
2005
  };
1929
- "minecraft:block_climber"?: {};
1930
- "minecraft:block_sensor"?: {
2006
+ 'minecraft:block_climber'?: {};
2007
+ 'minecraft:block_sensor'?: {
1931
2008
  on_break?: Array<{
1932
2009
  block_list?: string[];
1933
2010
  on_block_broken?: string;
@@ -1935,11 +2012,11 @@ interface EntityComponentOpt {
1935
2012
  sensor_radius?: number;
1936
2013
  sources?: any;
1937
2014
  };
1938
- "minecraft:body_rotation_axis_aligned"?: {};
1939
- "minecraft:body_rotation_always_follows_head"?: {};
1940
- "minecraft:body_rotation_blocked"?: {};
1941
- "minecraft:body_rotation_locked_to_vehicle"?: {};
1942
- "minecraft:boostable"?: {
2015
+ 'minecraft:body_rotation_axis_aligned'?: {};
2016
+ 'minecraft:body_rotation_always_follows_head'?: {};
2017
+ 'minecraft:body_rotation_blocked'?: {};
2018
+ 'minecraft:body_rotation_locked_to_vehicle'?: {};
2019
+ 'minecraft:boostable'?: {
1943
2020
  boost_items?: Array<{
1944
2021
  damage?: number;
1945
2022
  item: string;
@@ -1948,15 +2025,15 @@ interface EntityComponentOpt {
1948
2025
  duration?: number;
1949
2026
  speed_multiplier?: number;
1950
2027
  };
1951
- "minecraft:boss"?: {
2028
+ 'minecraft:boss'?: {
1952
2029
  hud_range?: number;
1953
2030
  name?: string;
1954
2031
  should_darken_sky?: boolean;
1955
2032
  };
1956
- "minecraft:break_blocks"?: {
2033
+ 'minecraft:break_blocks'?: {
1957
2034
  breakable_blocks?: string[];
1958
2035
  };
1959
- "minecraft:breathable"?: {
2036
+ 'minecraft:breathable'?: {
1960
2037
  breathe_blocks?: string[];
1961
2038
  breathes_air?: boolean;
1962
2039
  breathes_lava?: boolean;
@@ -1970,11 +2047,11 @@ interface EntityComponentOpt {
1970
2047
  total_supply?: number;
1971
2048
  totalSupply?: number;
1972
2049
  };
1973
- "minecraft:bribeable"?: {
2050
+ 'minecraft:bribeable'?: {
1974
2051
  bribe_cooldown?: number;
1975
2052
  bribe_items?: string[] | string;
1976
2053
  };
1977
- "minecraft:breedable"?: {
2054
+ 'minecraft:breedable'?: {
1978
2055
  allow_sitting?: boolean;
1979
2056
  blend_attributes?: boolean;
1980
2057
  breed_cooldown?: number;
@@ -2028,7 +2105,7 @@ interface EntityComponentOpt {
2028
2105
  require_full_health?: boolean;
2029
2106
  require_tame?: boolean;
2030
2107
  };
2031
- "minecraft:buoyant"?: {
2108
+ 'minecraft:buoyant'?: {
2032
2109
  apply_gravity?: boolean;
2033
2110
  base_buoyancy?: number;
2034
2111
  big_wave_probability?: number;
@@ -2036,17 +2113,17 @@ interface EntityComponentOpt {
2036
2113
  can_auto_step_from_liquid?: boolean;
2037
2114
  drag_down_on_buoyancy_removed?: number;
2038
2115
  liquid_blocks?: string[];
2039
- movement_type?: "waves" | "bobbing" | "none";
2116
+ movement_type?: 'waves' | 'bobbing' | 'none';
2040
2117
  };
2041
- "minecraft:burns_in_daylight"?: {
2042
- protection_slot?: "slot.armor.body" | "slot.armor.chest" | "slot.armor.feet" | "slot.armor.head" | "slot.armor.legs" | "slot.weapon.mainhand" | "slot.weapon.offhand";
2118
+ 'minecraft:burns_in_daylight'?: {
2119
+ protection_slot?: 'slot.armor.body' | 'slot.armor.chest' | 'slot.armor.feet' | 'slot.armor.head' | 'slot.armor.legs' | 'slot.weapon.mainhand' | 'slot.weapon.offhand';
2043
2120
  };
2044
- "minecraft:cannot_be_attacked"?: {};
2045
- "minecraft:can_climb"?: {};
2046
- "minecraft:can_fly"?: {};
2047
- "minecraft:can_join_raid"?: {};
2048
- "minecraft:can_power_jump"?: {};
2049
- "minecraft:celebrate_hunt"?: {
2121
+ 'minecraft:cannot_be_attacked'?: {};
2122
+ 'minecraft:can_climb'?: {};
2123
+ 'minecraft:can_fly'?: {};
2124
+ 'minecraft:can_join_raid'?: {};
2125
+ 'minecraft:can_power_jump'?: {};
2126
+ 'minecraft:celebrate_hunt'?: {
2050
2127
  broadcast?: boolean;
2051
2128
  celeberation_targets?: any;
2052
2129
  celebrate_sound?: string;
@@ -2057,22 +2134,22 @@ interface EntityComponentOpt {
2057
2134
  max: number;
2058
2135
  };
2059
2136
  };
2060
- "minecraft:collision_box"?: {
2137
+ 'minecraft:collision_box'?: {
2061
2138
  height?: number;
2062
2139
  width?: number;
2063
2140
  };
2064
- "minecraft:color"?: {
2141
+ 'minecraft:color'?: {
2065
2142
  value?: number;
2066
2143
  };
2067
- "minecraft:color2"?: {
2144
+ 'minecraft:color2'?: {
2068
2145
  value?: number;
2069
2146
  };
2070
- "minecraft:combat_regeneration"?: {
2147
+ 'minecraft:combat_regeneration'?: {
2071
2148
  apply_to_family?: boolean;
2072
2149
  apply_to_self?: boolean;
2073
- regeneration_duration?: number | "infinite";
2150
+ regeneration_duration?: number | 'infinite';
2074
2151
  };
2075
- "minecraft:conditional_bandwidth_optimization"?: {
2152
+ 'minecraft:conditional_bandwidth_optimization'?: {
2076
2153
  conditional_values?: Array<{
2077
2154
  conditional_values?: any;
2078
2155
  max_dropped_ticks?: number;
@@ -2085,19 +2162,19 @@ interface EntityComponentOpt {
2085
2162
  use_motion_prediction_hints?: boolean;
2086
2163
  };
2087
2164
  };
2088
- "minecraft:custom_hit_test"?: {
2165
+ 'minecraft:custom_hit_test'?: {
2089
2166
  hitboxes?: Array<{
2090
2167
  height?: number;
2091
2168
  pivot?: [number, number, number];
2092
2169
  width?: number;
2093
2170
  }>;
2094
2171
  };
2095
- "minecraft:damage_over_time"?: {
2172
+ 'minecraft:damage_over_time'?: {
2096
2173
  damage_per_hurt?: number;
2097
2174
  time_between_hurt?: number;
2098
2175
  };
2099
- "minecraft:damage_sensor"?: {
2100
- deals_damage?: boolean | "yes" | "no" | "no_but_side_effects_apply";
2176
+ 'minecraft:damage_sensor'?: {
2177
+ deals_damage?: boolean | 'yes' | 'no' | 'no_but_side_effects_apply';
2101
2178
  triggers?: Array<{
2102
2179
  cause?: string;
2103
2180
  damage_modifier?: number;
@@ -2122,22 +2199,22 @@ interface EntityComponentOpt {
2122
2199
  on_damage_sound_event?: string;
2123
2200
  };
2124
2201
  };
2125
- "minecraft:dash"?: {
2202
+ 'minecraft:dash'?: {
2126
2203
  cooldown_time?: number;
2127
2204
  horizontal_momentum?: number;
2128
2205
  vertical_momentum?: number;
2129
2206
  };
2130
- "minecraft:dash_action"?: {
2207
+ 'minecraft:dash_action'?: {
2131
2208
  can_dash_underwater?: boolean;
2132
2209
  cooldown_time?: number;
2133
- direction?: "entity" | "passenger";
2210
+ direction?: 'entity' | 'passenger';
2134
2211
  horizontal_momentum?: number;
2135
2212
  vertical_momentum?: number;
2136
2213
  };
2137
- "minecraft:default_look_angle"?: {
2214
+ 'minecraft:default_look_angle'?: {
2138
2215
  value?: number;
2139
2216
  };
2140
- "minecraft:despawn"?: {
2217
+ 'minecraft:despawn'?: {
2141
2218
  despawn_from_chance?: boolean;
2142
2219
  despawn_from_distance?: {
2143
2220
  max_distance?: number;
@@ -2150,8 +2227,8 @@ interface EntityComponentOpt {
2150
2227
  min_range_random_chance?: number;
2151
2228
  remove_child_entities?: boolean;
2152
2229
  };
2153
- "minecraft:dimension_bound"?: {};
2154
- "minecraft:drying_out_timer"?: {
2230
+ 'minecraft:dimension_bound'?: {};
2231
+ 'minecraft:drying_out_timer'?: {
2155
2232
  dried_out_event?: string | {
2156
2233
  event: string;
2157
2234
  target?: string;
@@ -2167,7 +2244,7 @@ interface EntityComponentOpt {
2167
2244
  total_time?: number;
2168
2245
  water_bottle_refill_time?: number;
2169
2246
  };
2170
- "minecraft:dweller"?: {
2247
+ 'minecraft:dweller'?: {
2171
2248
  can_find_poi?: boolean;
2172
2249
  can_migrate?: boolean;
2173
2250
  dweller_role?: string;
@@ -2179,7 +2256,7 @@ interface EntityComponentOpt {
2179
2256
  update_interval_base?: number;
2180
2257
  update_interval_variant?: number;
2181
2258
  };
2182
- "minecraft:economy_trade_table"?: {
2259
+ 'minecraft:economy_trade_table'?: {
2183
2260
  convert_trades_economy?: boolean;
2184
2261
  cured_discount?: number | [number, number];
2185
2262
  display_name?: string;
@@ -2193,10 +2270,10 @@ interface EntityComponentOpt {
2193
2270
  table?: string;
2194
2271
  use_legacy_price_formula?: boolean;
2195
2272
  };
2196
- "minecraft:entity_armor_equipment_slot_mapping"?: {
2273
+ 'minecraft:entity_armor_equipment_slot_mapping'?: {
2197
2274
  armor_slot?: string;
2198
2275
  };
2199
- "minecraft:entity_sensor"?: {
2276
+ 'minecraft:entity_sensor'?: {
2200
2277
  find_players_only?: boolean;
2201
2278
  relative_range?: boolean;
2202
2279
  subsensors?: Array<{
@@ -2213,14 +2290,14 @@ interface EntityComponentOpt {
2213
2290
  y_offset?: number;
2214
2291
  }>;
2215
2292
  };
2216
- "minecraft:equipment"?: {
2293
+ 'minecraft:equipment'?: {
2217
2294
  slot_drop_chance?: Array<string | {
2218
2295
  drop_chance?: number;
2219
2296
  slot?: string;
2220
2297
  }>;
2221
2298
  table?: string;
2222
2299
  };
2223
- "minecraft:equippable"?: {
2300
+ 'minecraft:equippable'?: {
2224
2301
  slots?: Array<{
2225
2302
  accepted_items?: string[];
2226
2303
  interact_text?: string;
@@ -2231,14 +2308,14 @@ interface EntityComponentOpt {
2231
2308
  [key: string]: any;
2232
2309
  }>;
2233
2310
  };
2234
- "minecraft:equip_item"?: {
2311
+ 'minecraft:equip_item'?: {
2235
2312
  can_wear_armor?: boolean;
2236
2313
  excluded_items?: Array<{
2237
2314
  item?: string;
2238
2315
  [key: string]: any;
2239
2316
  }>;
2240
2317
  };
2241
- "minecraft:environment_sensor"?: {
2318
+ 'minecraft:environment_sensor'?: {
2242
2319
  triggers?: {
2243
2320
  event?: string | {
2244
2321
  event: string;
@@ -2255,7 +2332,7 @@ interface EntityComponentOpt {
2255
2332
  [key: string]: any;
2256
2333
  }>;
2257
2334
  };
2258
- "minecraft:exhaustion_values"?: {
2335
+ 'minecraft:exhaustion_values'?: {
2259
2336
  attack?: number;
2260
2337
  damage?: number;
2261
2338
  heal?: number;
@@ -2268,7 +2345,7 @@ interface EntityComponentOpt {
2268
2345
  walk?: number;
2269
2346
  [key: string]: any;
2270
2347
  };
2271
- "minecraft:experience_reward"?: {
2348
+ 'minecraft:experience_reward'?: {
2272
2349
  on_bred?: string | number | {
2273
2350
  expression?: string;
2274
2351
  version?: number;
@@ -2279,7 +2356,7 @@ interface EntityComponentOpt {
2279
2356
  };
2280
2357
  [key: string]: any;
2281
2358
  };
2282
- "minecraft:explode"?: {
2359
+ 'minecraft:explode'?: {
2283
2360
  add?: {
2284
2361
  component_groups?: string[];
2285
2362
  [key: string]: any;
@@ -2301,9 +2378,9 @@ interface EntityComponentOpt {
2301
2378
  toggles_blocks?: boolean;
2302
2379
  [key: string]: any;
2303
2380
  };
2304
- "minecraft:fire_immune"?: {};
2305
- "minecraft:floats_in_liquid"?: {};
2306
- "minecraft:flocking"?: {
2381
+ 'minecraft:fire_immune'?: {};
2382
+ 'minecraft:floats_in_liquid'?: {};
2383
+ 'minecraft:flocking'?: {
2307
2384
  block_distance?: number;
2308
2385
  block_weight?: number;
2309
2386
  breach_influence?: number;
@@ -2324,26 +2401,26 @@ interface EntityComponentOpt {
2324
2401
  use_center_of_mass?: boolean;
2325
2402
  [key: string]: any;
2326
2403
  };
2327
- "minecraft:flying_speed"?: {
2404
+ 'minecraft:flying_speed'?: {
2328
2405
  value?: number;
2329
2406
  };
2330
- "minecraft:follow_range"?: {
2407
+ 'minecraft:follow_range'?: {
2331
2408
  max?: number;
2332
2409
  value?: number;
2333
2410
  };
2334
- "minecraft:free_camera_controlled"?: {
2411
+ 'minecraft:free_camera_controlled'?: {
2335
2412
  backwards_movement_modifier?: number;
2336
2413
  strafe_speed_modifier?: number;
2337
2414
  };
2338
- "minecraft:friction_modifier"?: {
2415
+ 'minecraft:friction_modifier'?: {
2339
2416
  value?: number;
2340
2417
  };
2341
- "minecraft:game_event_movement_tracking"?: {
2418
+ 'minecraft:game_event_movement_tracking'?: {
2342
2419
  emit_flap?: boolean;
2343
2420
  emit_move?: boolean;
2344
2421
  emit_swim?: boolean;
2345
2422
  };
2346
- "minecraft:genetics"?: {
2423
+ 'minecraft:genetics'?: {
2347
2424
  mutation_rate?: number;
2348
2425
  genes?: Array<{
2349
2426
  name: string;
@@ -2377,7 +2454,7 @@ interface EntityComponentOpt {
2377
2454
  }>;
2378
2455
  }>;
2379
2456
  };
2380
- "minecraft:giveable"?: {
2457
+ 'minecraft:giveable'?: {
2381
2458
  cooldown?: number;
2382
2459
  items?: string | string[];
2383
2460
  on_give?: string | {
@@ -2385,41 +2462,41 @@ interface EntityComponentOpt {
2385
2462
  target?: string;
2386
2463
  };
2387
2464
  };
2388
- "minecraft:ground_offset"?: {
2465
+ 'minecraft:ground_offset'?: {
2389
2466
  value?: number;
2390
2467
  };
2391
- "minecraft:group_size"?: {
2468
+ 'minecraft:group_size'?: {
2392
2469
  radius?: number;
2393
2470
  filters?: any;
2394
2471
  };
2395
- "minecraft:grows_crop"?: {
2472
+ 'minecraft:grows_crop'?: {
2396
2473
  chance?: number;
2397
2474
  charges?: number;
2398
2475
  };
2399
- "minecraft:health"?: {
2476
+ 'minecraft:health'?: {
2400
2477
  max?: number;
2401
2478
  value?: number | {
2402
2479
  range_min?: number;
2403
2480
  range_max?: number;
2404
2481
  };
2405
2482
  };
2406
- "minecraft:heartbeat"?: {
2483
+ 'minecraft:heartbeat'?: {
2407
2484
  interval?: string;
2408
2485
  sound_event?: string;
2409
2486
  };
2410
- "minecraft:hide"?: {};
2411
- "minecraft:home"?: {
2487
+ 'minecraft:hide'?: {};
2488
+ 'minecraft:home'?: {
2412
2489
  home_block_list?: string[];
2413
2490
  restriction_radius?: number;
2414
2491
  restriction_type?: 'none' | 'random_movement' | 'all_movement';
2415
2492
  };
2416
- "minecraft:horse.jump_strength"?: {
2493
+ 'minecraft:horse.jump_strength'?: {
2417
2494
  value?: number | {
2418
2495
  range_min?: number;
2419
2496
  range_max?: number;
2420
2497
  };
2421
2498
  };
2422
- "minecraft:hurt_on_condition"?: {
2499
+ 'minecraft:hurt_on_condition'?: {
2423
2500
  damage_conditions?: Array<{
2424
2501
  cause?: string;
2425
2502
  damage_per_tick?: number;
@@ -2432,7 +2509,7 @@ interface EntityComponentOpt {
2432
2509
  };
2433
2510
  }>;
2434
2511
  };
2435
- "minecraft:ignore_cannot_be_attacked"?: {
2512
+ 'minecraft:ignore_cannot_be_attacked'?: {
2436
2513
  filters?: {
2437
2514
  subject?: string;
2438
2515
  test?: string;
@@ -2441,11 +2518,11 @@ interface EntityComponentOpt {
2441
2518
  [key: string]: any;
2442
2519
  };
2443
2520
  };
2444
- "minecraft:input_air_controlled"?: {
2521
+ 'minecraft:input_air_controlled'?: {
2445
2522
  [key: string]: any;
2446
2523
  };
2447
- "minecraft:input_ground_controlled"?: {};
2448
- "minecraft:inside_block_notifier"?: {
2524
+ 'minecraft:input_ground_controlled'?: {};
2525
+ 'minecraft:inside_block_notifier'?: {
2449
2526
  block_list?: Array<{
2450
2527
  block?: {
2451
2528
  name?: string;
@@ -2463,13 +2540,13 @@ interface EntityComponentOpt {
2463
2540
  };
2464
2541
  }>;
2465
2542
  };
2466
- "minecraft:insomnia"?: {
2543
+ 'minecraft:insomnia'?: {
2467
2544
  days_until_insomnia?: number;
2468
2545
  };
2469
- "minecraft:instant_despawn"?: {
2546
+ 'minecraft:instant_despawn'?: {
2470
2547
  remove_child_entities?: boolean;
2471
2548
  };
2472
- "minecraft:interact"?: {
2549
+ 'minecraft:interact'?: {
2473
2550
  cooldown?: number;
2474
2551
  cooldown_after_being_attacked?: number;
2475
2552
  drop_item_slot?: string | number;
@@ -2513,7 +2590,7 @@ interface EntityComponentOpt {
2513
2590
  vibration?: 'none' | 'shear' | 'entity_die' | 'entity_act' | 'entity_interact';
2514
2591
  }>;
2515
2592
  };
2516
- "minecraft:inventory"?: {
2593
+ 'minecraft:inventory'?: {
2517
2594
  additional_slots_per_strength?: number;
2518
2595
  can_be_siphoned_from?: boolean;
2519
2596
  container_type?: string;
@@ -2521,19 +2598,19 @@ interface EntityComponentOpt {
2521
2598
  private?: boolean;
2522
2599
  restrict_to_owner?: boolean;
2523
2600
  };
2524
- "minecraft:is_baby"?: {};
2525
- "minecraft:is_charged"?: {};
2526
- "minecraft:is_chested"?: {};
2527
- "minecraft:is_dyeable"?: {
2601
+ 'minecraft:is_baby'?: {};
2602
+ 'minecraft:is_charged'?: {};
2603
+ 'minecraft:is_chested'?: {};
2604
+ 'minecraft:is_dyeable'?: {
2528
2605
  interact_text?: string;
2529
2606
  };
2530
- "minecraft:is_ignited"?: {};
2531
- "minecraft:is_pregnant"?: {};
2532
- "minecraft:item_controllable"?: {
2607
+ 'minecraft:is_ignited'?: {};
2608
+ 'minecraft:is_pregnant'?: {};
2609
+ 'minecraft:item_controllable'?: {
2533
2610
  control_items?: string | string[];
2534
2611
  };
2535
- "minecraft:item_hopper"?: {};
2536
- "minecraft:jump.dynamic"?: {
2612
+ 'minecraft:item_hopper'?: {};
2613
+ 'minecraft:jump.dynamic'?: {
2537
2614
  fast_skip_data?: {
2538
2615
  animation_duration?: number;
2539
2616
  distance_scale?: number;
@@ -2547,17 +2624,17 @@ interface EntityComponentOpt {
2547
2624
  jump_delay?: number;
2548
2625
  };
2549
2626
  };
2550
- "minecraft:jump.static"?: {
2627
+ 'minecraft:jump.static'?: {
2551
2628
  jump_power?: number;
2552
2629
  };
2553
- "minecraft:knockback_resistance"?: number | {
2630
+ 'minecraft:knockback_resistance'?: number | {
2554
2631
  max?: number;
2555
2632
  value?: number;
2556
2633
  };
2557
- "minecraft:lava_movement"?: {
2634
+ 'minecraft:lava_movement'?: {
2558
2635
  value?: number;
2559
2636
  };
2560
- "minecraft:leashable"?: {
2637
+ 'minecraft:leashable'?: {
2561
2638
  can_be_cut?: boolean;
2562
2639
  can_be_stolen?: boolean;
2563
2640
  hard_distance?: number;
@@ -2583,14 +2660,14 @@ interface EntityComponentOpt {
2583
2660
  max_distance?: number;
2584
2661
  rotation_adjustment?: number;
2585
2662
  soft_distance?: number;
2586
- spring_type?: "bouncy" | "dampened" | "quad_dampened";
2663
+ spring_type?: 'bouncy' | 'dampened' | 'quad_dampened';
2587
2664
  }>;
2588
2665
  soft_distance?: number;
2589
2666
  };
2590
- "minecraft:leashable_to"?: {
2667
+ 'minecraft:leashable_to'?: {
2591
2668
  can_retrieve_from?: boolean;
2592
2669
  };
2593
- "minecraft:looked_at"?: {
2670
+ 'minecraft:looked_at'?: {
2594
2671
  field_of_view?: number;
2595
2672
  filters?: {
2596
2673
  subject?: string;
@@ -2600,7 +2677,7 @@ interface EntityComponentOpt {
2600
2677
  [key: string]: any;
2601
2678
  };
2602
2679
  find_players_only?: boolean;
2603
- line_of_sight_obstruction_type?: "outline" | "collision" | "collision_for_camera";
2680
+ line_of_sight_obstruction_type?: 'outline' | 'collision' | 'collision_for_camera';
2604
2681
  look_at_locations?: string[];
2605
2682
  looked_at_cooldown?: {
2606
2683
  min: number;
@@ -2617,20 +2694,20 @@ interface EntityComponentOpt {
2617
2694
  };
2618
2695
  scale_fov_by_distance?: boolean;
2619
2696
  search_radius?: number;
2620
- set_target?: boolean | "never" | "once_and_stop_scanning" | "once_and_keep_scanning";
2697
+ set_target?: boolean | 'never' | 'once_and_stop_scanning' | 'once_and_keep_scanning';
2621
2698
  };
2622
- "minecraft:loot"?: {
2699
+ 'minecraft:loot'?: {
2623
2700
  table?: string;
2624
2701
  };
2625
- "minecraft:managed_wandering_trader"?: {};
2626
- "minecraft:mark_variant"?: {
2702
+ 'minecraft:managed_wandering_trader'?: {};
2703
+ 'minecraft:mark_variant'?: {
2627
2704
  value: number;
2628
2705
  };
2629
- "minecraft:mob_effect"?: {
2706
+ 'minecraft:mob_effect'?: {
2630
2707
  ambient?: boolean;
2631
2708
  cooldown_time?: number;
2632
2709
  effect_range?: number;
2633
- effect_time?: number | "infinite";
2710
+ effect_time?: number | 'infinite';
2634
2711
  entity_filter?: {
2635
2712
  subject?: string;
2636
2713
  test?: string;
@@ -2640,57 +2717,57 @@ interface EntityComponentOpt {
2640
2717
  };
2641
2718
  mob_effect: string;
2642
2719
  };
2643
- "minecraft:mob_effect_immunity"?: {
2720
+ 'minecraft:mob_effect_immunity'?: {
2644
2721
  mob_effects: string[];
2645
2722
  };
2646
- "minecraft:movement"?: {
2723
+ 'minecraft:movement'?: {
2647
2724
  max?: number;
2648
2725
  value?: number | {
2649
2726
  range_min: number;
2650
2727
  range_max: number;
2651
2728
  };
2652
2729
  };
2653
- "minecraft:movement.amphibious"?: {
2730
+ 'minecraft:movement.amphibious'?: {
2654
2731
  max_turn?: number;
2655
2732
  };
2656
- "minecraft:movement.basic"?: {
2733
+ 'minecraft:movement.basic'?: {
2657
2734
  max_turn?: number;
2658
2735
  };
2659
- "minecraft:movement.dolphin"?: {};
2660
- "minecraft:movement.fly"?: {
2736
+ 'minecraft:movement.dolphin'?: {};
2737
+ 'minecraft:movement.fly'?: {
2661
2738
  max_turn?: number;
2662
2739
  speed_when_turning?: number;
2663
2740
  start_speed?: number;
2664
2741
  };
2665
- "minecraft:movement.generic"?: {
2742
+ 'minecraft:movement.generic'?: {
2666
2743
  max_turn?: number;
2667
2744
  };
2668
- "minecraft:movement.glide"?: {
2745
+ 'minecraft:movement.glide'?: {
2669
2746
  max_turn?: number;
2670
2747
  speed_when_turning?: number;
2671
2748
  };
2672
- "minecraft:movement.hover"?: {
2749
+ 'minecraft:movement.hover'?: {
2673
2750
  max_turn?: number;
2674
2751
  };
2675
- "minecraft:movement.jump"?: {
2752
+ 'minecraft:movement.jump'?: {
2676
2753
  jump_delay?: number | [number, number] | {
2677
2754
  range_min: number;
2678
2755
  range_max: number;
2679
2756
  };
2680
2757
  max_turn?: number;
2681
2758
  };
2682
- "minecraft:movement.skip"?: {
2759
+ 'minecraft:movement.skip'?: {
2683
2760
  max_turn?: number;
2684
2761
  };
2685
- "minecraft:movement.sound_distance_offset"?: {
2762
+ 'minecraft:movement.sound_distance_offset'?: {
2686
2763
  value?: number;
2687
2764
  };
2688
- "minecraft:movement.sway"?: {
2765
+ 'minecraft:movement.sway'?: {
2689
2766
  max_turn?: number;
2690
2767
  sway_amplitude?: number;
2691
2768
  sway_frequency?: number;
2692
2769
  };
2693
- "minecraft:nameable"?: {
2770
+ 'minecraft:nameable'?: {
2694
2771
  allow_name_tag_renaming?: boolean;
2695
2772
  always_show?: boolean;
2696
2773
  default_trigger?: string;
@@ -2702,7 +2779,7 @@ interface EntityComponentOpt {
2702
2779
  };
2703
2780
  }>;
2704
2781
  };
2705
- "minecraft:navigation.climb"?: {
2782
+ 'minecraft:navigation.climb'?: {
2706
2783
  avoid_damage_blocks?: boolean;
2707
2784
  avoid_portals?: boolean;
2708
2785
  avoid_sun?: boolean;
@@ -2724,7 +2801,7 @@ interface EntityComponentOpt {
2724
2801
  is_amphibious?: boolean;
2725
2802
  using_door_annotation?: boolean;
2726
2803
  };
2727
- "minecraft:navigation.float"?: {
2804
+ 'minecraft:navigation.float'?: {
2728
2805
  avoid_damage_blocks?: boolean;
2729
2806
  avoid_portals?: boolean;
2730
2807
  avoid_sun?: boolean;
@@ -2746,7 +2823,7 @@ interface EntityComponentOpt {
2746
2823
  is_amphibious?: boolean;
2747
2824
  using_door_annotation?: boolean;
2748
2825
  };
2749
- "minecraft:navigation.fly"?: {
2826
+ 'minecraft:navigation.fly'?: {
2750
2827
  avoid_damage_blocks?: boolean;
2751
2828
  avoid_portals?: boolean;
2752
2829
  avoid_sun?: boolean;
@@ -2768,7 +2845,7 @@ interface EntityComponentOpt {
2768
2845
  is_amphibious?: boolean;
2769
2846
  using_door_annotation?: boolean;
2770
2847
  };
2771
- "minecraft:navigation.generic"?: {
2848
+ 'minecraft:navigation.generic'?: {
2772
2849
  avoid_damage_blocks?: boolean;
2773
2850
  avoid_portals?: boolean;
2774
2851
  avoid_sun?: boolean;
@@ -2790,7 +2867,7 @@ interface EntityComponentOpt {
2790
2867
  is_amphibious?: boolean;
2791
2868
  using_door_annotation?: boolean;
2792
2869
  };
2793
- "minecraft:navigation.hover"?: {
2870
+ 'minecraft:navigation.hover'?: {
2794
2871
  avoid_damage_blocks?: boolean;
2795
2872
  avoid_portals?: boolean;
2796
2873
  avoid_sun?: boolean;
@@ -2812,7 +2889,7 @@ interface EntityComponentOpt {
2812
2889
  is_amphibious?: boolean;
2813
2890
  using_door_annotation?: boolean;
2814
2891
  };
2815
- "minecraft:navigation.swim"?: {
2892
+ 'minecraft:navigation.swim'?: {
2816
2893
  avoid_damage_blocks?: boolean;
2817
2894
  avoid_portals?: boolean;
2818
2895
  avoid_sun?: boolean;
@@ -2837,7 +2914,7 @@ interface EntityComponentOpt {
2837
2914
  is_amphibious?: boolean;
2838
2915
  using_door_annotation?: boolean;
2839
2916
  };
2840
- "minecraft:navigation.walk"?: {
2917
+ 'minecraft:navigation.walk'?: {
2841
2918
  avoid_damage_blocks?: boolean;
2842
2919
  avoid_portals?: boolean;
2843
2920
  avoid_sun?: boolean;
@@ -2863,7 +2940,7 @@ interface EntityComponentOpt {
2863
2940
  is_amphibious?: boolean;
2864
2941
  using_door_annotation?: boolean;
2865
2942
  };
2866
- "minecraft:preferred_path"?: {
2943
+ 'minecraft:preferred_path'?: {
2867
2944
  /** Cost for non-preferred blocks */
2868
2945
  default_block_cost?: number;
2869
2946
  /** Added cost for jumping up a node */
@@ -2878,8 +2955,8 @@ interface EntityComponentOpt {
2878
2955
  cost: number;
2879
2956
  }>;
2880
2957
  };
2881
- "minecraft:out_of_control"?: {};
2882
- "minecraft:peek"?: {
2958
+ 'minecraft:out_of_control'?: {};
2959
+ 'minecraft:peek'?: {
2883
2960
  on_close?: {
2884
2961
  event?: string;
2885
2962
  };
@@ -2890,17 +2967,17 @@ interface EntityComponentOpt {
2890
2967
  event?: string;
2891
2968
  };
2892
2969
  };
2893
- "minecraft:persistent"?: {};
2894
- "minecraft:physics"?: {
2970
+ 'minecraft:persistent'?: {};
2971
+ 'minecraft:physics'?: {
2895
2972
  has_collision?: boolean;
2896
2973
  has_gravity?: boolean;
2897
2974
  push_towards_closest_space?: boolean;
2898
2975
  };
2899
- "minecraft:player.exhaustion"?: {
2976
+ 'minecraft:player.exhaustion'?: {
2900
2977
  max?: number;
2901
2978
  value?: number;
2902
2979
  };
2903
- "minecraft:offspring"?: {
2980
+ 'minecraft:offspring'?: {
2904
2981
  born_event?: {
2905
2982
  event?: string;
2906
2983
  target?: string;
@@ -2958,17 +3035,19 @@ interface EntityComponentOpt {
2958
3035
  };
2959
3036
  };
2960
3037
  }
2961
- interface EntityJSON {
2962
- format_version: string;
2963
- "minecraft:entity": {
3038
+ interface EntityJson extends BaseJson {
3039
+ 'minecraft:entity': {
2964
3040
  description: {
2965
3041
  identifier: string;
2966
3042
  is_spawnable?: boolean;
2967
3043
  is_summonable?: boolean;
2968
3044
  };
2969
- components?: EntityComponentOpt["components"];
3045
+ components?: EntityComponentOptions['components'];
2970
3046
  component_groups?: Record<string, {}>;
2971
3047
  };
2972
3048
  }
2973
- export type { EntityComponentOpt, EntityJSON };
3049
+ export type { EntityComponentOptions, EntityJson };
3050
+ export type { EntityComponentOptions as EntityComponentOpt };
3051
+ export type { EntityJson as EntityJSON };
3052
+ export type { BaseJson as BaseJSON };
2974
3053
  export { RepairItemSchema, SeedPropertiesSchema };