redscript-mc 1.0.0 → 1.1.0

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 (106) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +72 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +57 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +17 -25
  4. package/CHANGELOG.md +58 -0
  5. package/CONTRIBUTING.md +140 -0
  6. package/README.md +28 -19
  7. package/README.zh.md +28 -19
  8. package/dist/__tests__/cli.test.js +10 -10
  9. package/dist/__tests__/codegen.test.js +1 -1
  10. package/dist/__tests__/diagnostics.test.js +5 -5
  11. package/dist/__tests__/e2e.test.js +146 -5
  12. package/dist/__tests__/formatter.test.d.ts +1 -0
  13. package/dist/__tests__/formatter.test.js +40 -0
  14. package/dist/__tests__/lowering.test.js +36 -3
  15. package/dist/__tests__/mc-integration.test.js +255 -10
  16. package/dist/__tests__/mc-syntax.test.js +3 -3
  17. package/dist/__tests__/nbt.test.js +2 -2
  18. package/dist/__tests__/optimizer-advanced.test.js +3 -3
  19. package/dist/__tests__/runtime.test.js +1 -1
  20. package/dist/ast/types.d.ts +21 -3
  21. package/dist/cli.js +25 -7
  22. package/dist/codegen/mcfunction/index.d.ts +1 -1
  23. package/dist/codegen/mcfunction/index.js +8 -2
  24. package/dist/codegen/structure/index.js +7 -1
  25. package/dist/formatter/index.d.ts +1 -0
  26. package/dist/formatter/index.js +26 -0
  27. package/dist/ir/builder.d.ts +2 -1
  28. package/dist/ir/types.d.ts +7 -2
  29. package/dist/ir/types.js +1 -1
  30. package/dist/lowering/index.d.ts +2 -0
  31. package/dist/lowering/index.js +183 -8
  32. package/dist/mc-test/runner.d.ts +2 -2
  33. package/dist/mc-test/runner.js +3 -3
  34. package/dist/mc-test/setup.js +2 -2
  35. package/dist/parser/index.d.ts +2 -0
  36. package/dist/parser/index.js +75 -7
  37. package/docs/COMPILATION_STATS.md +24 -24
  38. package/docs/IMPLEMENTATION_GUIDE.md +1 -1
  39. package/docs/STRUCTURE_TARGET.md +1 -1
  40. package/editors/vscode/.vscodeignore +1 -0
  41. package/editors/vscode/icons/mcrs.svg +7 -0
  42. package/editors/vscode/icons/redscript-icons.json +10 -0
  43. package/editors/vscode/out/extension.js +152 -9
  44. package/editors/vscode/package.json +10 -3
  45. package/editors/vscode/src/hover.ts +55 -2
  46. package/editors/vscode/src/symbols.ts +42 -0
  47. package/package.json +1 -1
  48. package/src/__tests__/cli.test.ts +10 -10
  49. package/src/__tests__/codegen.test.ts +1 -1
  50. package/src/__tests__/diagnostics.test.ts +5 -5
  51. package/src/__tests__/e2e.test.ts +134 -5
  52. package/src/__tests__/lowering.test.ts +48 -3
  53. package/src/__tests__/mc-integration.test.ts +285 -10
  54. package/src/__tests__/mc-syntax.test.ts +3 -3
  55. package/src/__tests__/nbt.test.ts +2 -2
  56. package/src/__tests__/optimizer-advanced.test.ts +3 -3
  57. package/src/__tests__/runtime.test.ts +1 -1
  58. package/src/ast/types.ts +20 -3
  59. package/src/cli.ts +10 -10
  60. package/src/codegen/mcfunction/index.ts +9 -2
  61. package/src/codegen/structure/index.ts +8 -1
  62. package/src/examples/capture_the_flag.mcrs +208 -0
  63. package/src/examples/{counter.rs → counter.mcrs} +1 -1
  64. package/src/examples/hunger_games.mcrs +301 -0
  65. package/src/examples/new_features_demo.mcrs +193 -0
  66. package/src/examples/parkour_race.mcrs +233 -0
  67. package/src/examples/rpg.mcrs +13 -0
  68. package/src/examples/{shop.rs → shop.mcrs} +1 -1
  69. package/src/examples/{showcase_game.rs → showcase_game.mcrs} +3 -3
  70. package/src/examples/{turret.rs → turret.mcrs} +1 -1
  71. package/src/examples/zombie_survival.mcrs +314 -0
  72. package/src/ir/builder.ts +3 -1
  73. package/src/ir/types.ts +8 -2
  74. package/src/lowering/index.ts +156 -8
  75. package/src/mc-test/runner.ts +3 -3
  76. package/src/mc-test/setup.ts +2 -2
  77. package/src/parser/index.ts +81 -8
  78. package/src/stdlib/README.md +155 -147
  79. package/src/stdlib/bossbar.mcrs +68 -0
  80. package/src/stdlib/{cooldown.rs → cooldown.mcrs} +1 -1
  81. package/src/stdlib/effects.mcrs +64 -0
  82. package/src/stdlib/interactions.mcrs +195 -0
  83. package/src/stdlib/inventory.mcrs +38 -0
  84. package/src/stdlib/mobs.mcrs +99 -0
  85. package/src/stdlib/particles.mcrs +52 -0
  86. package/src/stdlib/sets.mcrs +20 -0
  87. package/src/stdlib/spawn.mcrs +41 -0
  88. package/src/stdlib/teams.mcrs +68 -0
  89. package/src/stdlib/world.mcrs +92 -0
  90. package/src/examples/rpg.rs +0 -13
  91. package/src/stdlib/mobs.rs +0 -99
  92. /package/src/examples/{arena.rs → arena.mcrs} +0 -0
  93. /package/src/examples/{pvp_arena.rs → pvp_arena.mcrs} +0 -0
  94. /package/src/examples/{quiz.rs → quiz.mcrs} +0 -0
  95. /package/src/examples/{stdlib_demo.rs → stdlib_demo.mcrs} +0 -0
  96. /package/src/examples/{world_manager.rs → world_manager.mcrs} +0 -0
  97. /package/src/stdlib/{combat.rs → combat.mcrs} +0 -0
  98. /package/src/stdlib/{math.rs → math.mcrs} +0 -0
  99. /package/src/stdlib/{player.rs → player.mcrs} +0 -0
  100. /package/src/stdlib/{strings.rs → strings.mcrs} +0 -0
  101. /package/src/stdlib/{timer.rs → timer.mcrs} +0 -0
  102. /package/src/templates/{combat.rs → combat.mcrs} +0 -0
  103. /package/src/templates/{economy.rs → economy.mcrs} +0 -0
  104. /package/src/templates/{mini-game-framework.rs → mini-game-framework.mcrs} +0 -0
  105. /package/src/templates/{quest.rs → quest.mcrs} +0 -0
  106. /package/src/test_programs/{zombie_game.rs → zombie_game.mcrs} +0 -0
@@ -0,0 +1,99 @@
1
+ // Vanilla Minecraft Java Edition entity type constants.
2
+ // Copy the names you need into your own project until RedScript gets imports.
3
+
4
+ // Hostile mobs
5
+ const ZOMBIE ="minecraft:zombie"
6
+ const SKELETON ="minecraft:skeleton"
7
+ const CREEPER ="minecraft:creeper"
8
+ const SPIDER ="minecraft:spider"
9
+ const CAVE_SPIDER ="minecraft:cave_spider"
10
+ const ENDERMAN ="minecraft:enderman"
11
+ const WITCH ="minecraft:witch"
12
+ const PHANTOM ="minecraft:phantom"
13
+ const DROWNED ="minecraft:drowned"
14
+ const HUSK ="minecraft:husk"
15
+ const STRAY ="minecraft:stray"
16
+ const WARDEN ="minecraft:warden"
17
+ const PILLAGER ="minecraft:pillager"
18
+ const RAVAGER ="minecraft:ravager"
19
+ const VINDICATOR ="minecraft:vindicator"
20
+ const EVOKER ="minecraft:evoker"
21
+ const VEXE ="minecraft:vex"
22
+ const ZOMBIE_VILLAGER ="minecraft:zombie_villager"
23
+ const BLAZE ="minecraft:blaze"
24
+ const GHAST ="minecraft:ghast"
25
+ const MAGMA_CUBE ="minecraft:magma_cube"
26
+ const SLIME ="minecraft:slime"
27
+ const PIGLIN_BRUTE ="minecraft:piglin_brute"
28
+ const HOGLIN ="minecraft:hoglin"
29
+ const ZOGLIN ="minecraft:zoglin"
30
+ const ENDERMITE ="minecraft:endermite"
31
+ const SILVERFISH ="minecraft:silverfish"
32
+ const SHULKER ="minecraft:shulker"
33
+ const GUARDIAN ="minecraft:guardian"
34
+ const ELDER_GUARDIAN ="minecraft:elder_guardian"
35
+ const BOGGED ="minecraft:bogged"
36
+ const BREEZE ="minecraft:breeze"
37
+
38
+ // Passive mobs
39
+ const PIG ="minecraft:pig"
40
+ const COW ="minecraft:cow"
41
+ const SHEEP ="minecraft:sheep"
42
+ const CHICKEN ="minecraft:chicken"
43
+ const HORSE ="minecraft:horse"
44
+ const DONKEY ="minecraft:donkey"
45
+ const MULE ="minecraft:mule"
46
+ const RABBIT ="minecraft:rabbit"
47
+ const COD ="minecraft:cod"
48
+ const SALMON ="minecraft:salmon"
49
+ const TROPICAL_FISH ="minecraft:tropical_fish"
50
+ const PUFFERFISH ="minecraft:pufferfish"
51
+ const SQUID ="minecraft:squid"
52
+ const GLOW_SQUID ="minecraft:glow_squid"
53
+ const BAT ="minecraft:bat"
54
+ const VILLAGER ="minecraft:villager"
55
+ const WANDERING_TRADER ="minecraft:wandering_trader"
56
+ const SNOW_GOLEM ="minecraft:snow_golem"
57
+ const STRIDER ="minecraft:strider"
58
+ const AXOLOTL ="minecraft:axolotl"
59
+ const FROG ="minecraft:frog"
60
+ const TADPOLE ="minecraft:tadpole"
61
+ const ALLAY ="minecraft:allay"
62
+ const SNIFFER ="minecraft:sniffer"
63
+ const ARMADILLO ="minecraft:armadillo"
64
+ const TURTLE ="minecraft:turtle"
65
+
66
+ // Neutral mobs
67
+ const WOLF ="minecraft:wolf"
68
+ const BEE ="minecraft:bee"
69
+ const POLAR_BEAR ="minecraft:polar_bear"
70
+ const DOLPHIN ="minecraft:dolphin"
71
+ const IRON_GOLEM ="minecraft:iron_golem"
72
+ const PIGLIN ="minecraft:piglin"
73
+ const ZOMBIFIED_PIGLIN ="minecraft:zombified_piglin"
74
+ const PANDA ="minecraft:panda"
75
+ const LLAMA ="minecraft:llama"
76
+ const TRADER_LLAMA ="minecraft:trader_llama"
77
+ const CAT ="minecraft:cat"
78
+ const OCELOT ="minecraft:ocelot"
79
+ const FOX ="minecraft:fox"
80
+ const GOAT ="minecraft:goat"
81
+ const CAMEL ="minecraft:camel"
82
+
83
+ // Bosses
84
+ const ENDER_DRAGON ="minecraft:ender_dragon"
85
+ const WITHER ="minecraft:wither"
86
+
87
+ // Special / misc
88
+ const ARMOR_STAND ="minecraft:armor_stand"
89
+ const ITEM_FRAME ="minecraft:item_frame"
90
+ const GLOW_ITEM_FRAME ="minecraft:glow_item_frame"
91
+ const PAINTING ="minecraft:painting"
92
+ const BOAT ="minecraft:boat"
93
+ const MINECART ="minecraft:minecart"
94
+ const TNT ="minecraft:tnt"
95
+ const FALLING_BLOCK ="minecraft:falling_block"
96
+ const ITEM ="minecraft:item"
97
+ const XP_ORB ="minecraft:experience_orb"
98
+ const FIREBALL ="minecraft:fireball"
99
+ const PLAYER ="minecraft:player"
@@ -0,0 +1,52 @@
1
+ // Particle effect helpers
2
+ // Usage: import "stdlib/particles.mcrs"
3
+
4
+ /// Spawn heart particles at position
5
+ fn hearts_at(x: int, y: int, z: int) {
6
+ particle("heart", x, y, z);
7
+ }
8
+
9
+ /// Spawn flame particles at position
10
+ fn flames(x: int, y: int, z: int) {
11
+ particle("flame", x, y, z);
12
+ }
13
+
14
+ /// Spawn smoke effect
15
+ fn smoke(x: int, y: int, z: int) {
16
+ particle("large_smoke", x, y, z);
17
+ }
18
+
19
+ /// Spawn explosion effect
20
+ fn explosion_effect(x: int, y: int, z: int) {
21
+ particle("explosion", x, y, z);
22
+ }
23
+
24
+ /// Spawn magic sparkles at position
25
+ fn sparkles_at(x: int, y: int, z: int) {
26
+ particle("enchant", x, y, z);
27
+ }
28
+
29
+ /// Spawn angry villager particles
30
+ fn angry_at(x: int, y: int, z: int) {
31
+ particle("angry_villager", x, y, z);
32
+ }
33
+
34
+ /// Spawn happy villager particles
35
+ fn happy_at(x: int, y: int, z: int) {
36
+ particle("happy_villager", x, y, z);
37
+ }
38
+
39
+ /// Spawn portal effect
40
+ fn portal_effect(x: int, y: int, z: int) {
41
+ particle("portal", x, y, z);
42
+ }
43
+
44
+ /// Spawn totem particles at position
45
+ fn totem_at(x: int, y: int, z: int) {
46
+ particle("totem_of_undying", x, y, z);
47
+ }
48
+
49
+ /// Spawn end rod sparkles
50
+ fn end_sparkles_at(x: int, y: int, z: int) {
51
+ particle("end_rod", x, y, z);
52
+ }
@@ -0,0 +1,20 @@
1
+ // Runtime Set implementation using NBT storage.
2
+ // Sets are stored as NBT arrays with uniqueness enforced on add.
3
+ //
4
+ // Note: This is reference documentation for the builtins.
5
+ // Actual implementation is in the compiler.
6
+ //
7
+ // fn set_new() -> string
8
+ // Creates a new empty set. Returns a unique set ID.
9
+ //
10
+ // fn set_add(set: string, value: string)
11
+ // Adds a value to the set if it is not already present.
12
+ //
13
+ // fn set_contains(set: string, value: string) -> int
14
+ // Returns 1 if the value exists in the set, 0 otherwise.
15
+ //
16
+ // fn set_remove(set: string, value: string)
17
+ // Removes a value from the set.
18
+ //
19
+ // fn set_clear(set: string)
20
+ // Removes all values from the set.
@@ -0,0 +1,41 @@
1
+ // Spawn point and teleport helpers
2
+ // Usage: import "stdlib/spawn.mcrs"
3
+
4
+ /// Teleport player to coordinates
5
+ fn teleport_to(target: selector, x: int, y: int, z: int) {
6
+ tp(target, x, y, z);
7
+ }
8
+
9
+ /// Teleport player to another entity
10
+ fn teleport_to_entity(target: selector, dest: selector) {
11
+ tp(target, dest);
12
+ }
13
+
14
+ /// Spread players randomly in area
15
+ fn spread_players(x: int, z: int, radius: int) {
16
+ // Use raw command for spreadplayers
17
+ // spreadplayers(x, z, 0, radius, false, @a);
18
+ say("Spreading players...");
19
+ }
20
+
21
+ /// Teleport all players to one location
22
+ fn gather_all(x: int, y: int, z: int) {
23
+ tp(@a, x, y, z);
24
+ }
25
+
26
+ /// Teleport player up (for launching)
27
+ fn launch_up(target: selector, height: int) {
28
+ tp(target, ~0, ~height, ~0);
29
+ }
30
+
31
+ /// Teleport to lobby (customize coordinates)
32
+ fn goto_lobby(target: selector) {
33
+ tp(target, 0, 64, 0);
34
+ title(target, "Welcome to Lobby!");
35
+ }
36
+
37
+ /// Teleport to arena (customize coordinates)
38
+ fn goto_arena(target: selector) {
39
+ tp(target, 100, 64, 100);
40
+ title(target, "Fight!");
41
+ }
@@ -0,0 +1,68 @@
1
+ // Team management helpers
2
+ // Usage: import "stdlib/teams.mcrs"
3
+
4
+ /// Create a team with color
5
+ fn create_team(name: string, color: string) {
6
+ team_add(name);
7
+ team_option(name, "color", color);
8
+ }
9
+
10
+ /// Create red team
11
+ fn create_red_team() {
12
+ team_add("red");
13
+ team_option("red", "color", "red");
14
+ team_option("red", "friendlyFire", "false");
15
+ }
16
+
17
+ /// Create blue team
18
+ fn create_blue_team() {
19
+ team_add("blue");
20
+ team_option("blue", "color", "blue");
21
+ team_option("blue", "friendlyFire", "false");
22
+ }
23
+
24
+ /// Create green team
25
+ fn create_green_team() {
26
+ team_add("green");
27
+ team_option("green", "color", "green");
28
+ team_option("green", "friendlyFire", "false");
29
+ }
30
+
31
+ /// Create yellow team
32
+ fn create_yellow_team() {
33
+ team_add("yellow");
34
+ team_option("yellow", "color", "yellow");
35
+ team_option("yellow", "friendlyFire", "false");
36
+ }
37
+
38
+ /// Add player to team
39
+ fn add_to_team(target: selector, team_name: string) {
40
+ team_join(target, team_name);
41
+ }
42
+
43
+ /// Remove player from all teams
44
+ fn remove_from_teams(target: selector) {
45
+ team_leave(target);
46
+ }
47
+
48
+ /// Setup standard 2-team game
49
+ fn setup_two_teams() {
50
+ create_red_team();
51
+ create_blue_team();
52
+ }
53
+
54
+ /// Setup 4-team game
55
+ fn setup_four_teams() {
56
+ create_red_team();
57
+ create_blue_team();
58
+ create_green_team();
59
+ create_yellow_team();
60
+ }
61
+
62
+ /// Cleanup all teams
63
+ fn cleanup_teams() {
64
+ team_remove("red");
65
+ team_remove("blue");
66
+ team_remove("green");
67
+ team_remove("yellow");
68
+ }
@@ -0,0 +1,92 @@
1
+ // World manipulation helpers
2
+
3
+ /// Set time to day
4
+ fn set_day() {
5
+ time_set(1000);
6
+ }
7
+
8
+ /// Set time to night
9
+ fn set_night() {
10
+ time_set(13000);
11
+ }
12
+
13
+ /// Set time to noon
14
+ fn set_noon() {
15
+ time_set(6000);
16
+ }
17
+
18
+ /// Set time to midnight
19
+ fn set_midnight() {
20
+ time_set(18000);
21
+ }
22
+
23
+ /// Set weather to clear
24
+ fn weather_clear() {
25
+ weather("clear");
26
+ }
27
+
28
+ /// Set weather to rain
29
+ fn weather_rain() {
30
+ weather("rain");
31
+ }
32
+
33
+ /// Set weather to thunder
34
+ fn weather_thunder() {
35
+ weather("thunder");
36
+ }
37
+
38
+ /// Enable keep inventory
39
+ fn enable_keep_inventory() {
40
+ gamerule("keepInventory", "true");
41
+ }
42
+
43
+ /// Disable keep inventory
44
+ fn disable_keep_inventory() {
45
+ gamerule("keepInventory", "false");
46
+ }
47
+
48
+ /// Disable mob griefing
49
+ fn disable_mob_griefing() {
50
+ gamerule("mobGriefing", "false");
51
+ }
52
+
53
+ /// Disable fire spread
54
+ fn disable_fire_spread() {
55
+ gamerule("doFireTick", "false");
56
+ }
57
+
58
+ /// Set difficulty to peaceful
59
+ fn set_peaceful() {
60
+ difficulty("peaceful");
61
+ }
62
+
63
+ /// Set difficulty to easy
64
+ fn set_easy() {
65
+ difficulty("easy");
66
+ }
67
+
68
+ /// Set difficulty to normal
69
+ fn set_normal() {
70
+ difficulty("normal");
71
+ }
72
+
73
+ /// Set difficulty to hard
74
+ fn set_hard() {
75
+ difficulty("hard");
76
+ }
77
+
78
+ /// Create barrier wall
79
+ fn barrier_wall(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) {
80
+ fill(x1, y1, z1, x2, y2, z2, "minecraft:barrier");
81
+ }
82
+
83
+ /// Create air (clear area)
84
+ fn clear_area(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) {
85
+ fill(x1, y1, z1, x2, y2, z2, "minecraft:air");
86
+ }
87
+
88
+ /// Create glass dome (hollow)
89
+ fn glass_box(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) {
90
+ fill(x1, y1, z1, x2, y2, z2, "minecraft:glass");
91
+ fill(x1 + 1, y1 + 1, z1 + 1, x2 - 1, y2 - 1, z2 - 1, "minecraft:air");
92
+ }
@@ -1,13 +0,0 @@
1
- import "../stdlib/math.rs"
2
- import "../stdlib/combat.rs"
3
-
4
- fn attack(enemy: string, base: int, bonus: int) {
5
- let raw_damage: int = weapon_damage(base, bonus);
6
- let damage: int = clamp(raw_damage, 1, 20);
7
- apply_damage(enemy, damage);
8
- }
9
-
10
- @tick
11
- fn battle_tick() {
12
- attack("goblin", 4, 2);
13
- }
@@ -1,99 +0,0 @@
1
- // Vanilla Minecraft Java Edition entity type constants.
2
- // Copy the names you need into your own project until RedScript gets imports.
3
-
4
- // Hostile mobs
5
- const ZOMBIE: string = "minecraft:zombie"
6
- const SKELETON: string = "minecraft:skeleton"
7
- const CREEPER: string = "minecraft:creeper"
8
- const SPIDER: string = "minecraft:spider"
9
- const CAVE_SPIDER: string = "minecraft:cave_spider"
10
- const ENDERMAN: string = "minecraft:enderman"
11
- const WITCH: string = "minecraft:witch"
12
- const PHANTOM: string = "minecraft:phantom"
13
- const DROWNED: string = "minecraft:drowned"
14
- const HUSK: string = "minecraft:husk"
15
- const STRAY: string = "minecraft:stray"
16
- const WARDEN: string = "minecraft:warden"
17
- const PILLAGER: string = "minecraft:pillager"
18
- const RAVAGER: string = "minecraft:ravager"
19
- const VINDICATOR: string = "minecraft:vindicator"
20
- const EVOKER: string = "minecraft:evoker"
21
- const VEXE: string = "minecraft:vex"
22
- const ZOMBIE_VILLAGER: string = "minecraft:zombie_villager"
23
- const BLAZE: string = "minecraft:blaze"
24
- const GHAST: string = "minecraft:ghast"
25
- const MAGMA_CUBE: string = "minecraft:magma_cube"
26
- const SLIME: string = "minecraft:slime"
27
- const PIGLIN_BRUTE: string = "minecraft:piglin_brute"
28
- const HOGLIN: string = "minecraft:hoglin"
29
- const ZOGLIN: string = "minecraft:zoglin"
30
- const ENDERMITE: string = "minecraft:endermite"
31
- const SILVERFISH: string = "minecraft:silverfish"
32
- const SHULKER: string = "minecraft:shulker"
33
- const GUARDIAN: string = "minecraft:guardian"
34
- const ELDER_GUARDIAN: string = "minecraft:elder_guardian"
35
- const BOGGED: string = "minecraft:bogged"
36
- const BREEZE: string = "minecraft:breeze"
37
-
38
- // Passive mobs
39
- const PIG: string = "minecraft:pig"
40
- const COW: string = "minecraft:cow"
41
- const SHEEP: string = "minecraft:sheep"
42
- const CHICKEN: string = "minecraft:chicken"
43
- const HORSE: string = "minecraft:horse"
44
- const DONKEY: string = "minecraft:donkey"
45
- const MULE: string = "minecraft:mule"
46
- const RABBIT: string = "minecraft:rabbit"
47
- const COD: string = "minecraft:cod"
48
- const SALMON: string = "minecraft:salmon"
49
- const TROPICAL_FISH: string = "minecraft:tropical_fish"
50
- const PUFFERFISH: string = "minecraft:pufferfish"
51
- const SQUID: string = "minecraft:squid"
52
- const GLOW_SQUID: string = "minecraft:glow_squid"
53
- const BAT: string = "minecraft:bat"
54
- const VILLAGER: string = "minecraft:villager"
55
- const WANDERING_TRADER: string = "minecraft:wandering_trader"
56
- const SNOW_GOLEM: string = "minecraft:snow_golem"
57
- const STRIDER: string = "minecraft:strider"
58
- const AXOLOTL: string = "minecraft:axolotl"
59
- const FROG: string = "minecraft:frog"
60
- const TADPOLE: string = "minecraft:tadpole"
61
- const ALLAY: string = "minecraft:allay"
62
- const SNIFFER: string = "minecraft:sniffer"
63
- const ARMADILLO: string = "minecraft:armadillo"
64
- const TURTLE: string = "minecraft:turtle"
65
-
66
- // Neutral mobs
67
- const WOLF: string = "minecraft:wolf"
68
- const BEE: string = "minecraft:bee"
69
- const POLAR_BEAR: string = "minecraft:polar_bear"
70
- const DOLPHIN: string = "minecraft:dolphin"
71
- const IRON_GOLEM: string = "minecraft:iron_golem"
72
- const PIGLIN: string = "minecraft:piglin"
73
- const ZOMBIFIED_PIGLIN: string = "minecraft:zombified_piglin"
74
- const PANDA: string = "minecraft:panda"
75
- const LLAMA: string = "minecraft:llama"
76
- const TRADER_LLAMA: string = "minecraft:trader_llama"
77
- const CAT: string = "minecraft:cat"
78
- const OCELOT: string = "minecraft:ocelot"
79
- const FOX: string = "minecraft:fox"
80
- const GOAT: string = "minecraft:goat"
81
- const CAMEL: string = "minecraft:camel"
82
-
83
- // Bosses
84
- const ENDER_DRAGON: string = "minecraft:ender_dragon"
85
- const WITHER: string = "minecraft:wither"
86
-
87
- // Special / misc
88
- const ARMOR_STAND: string = "minecraft:armor_stand"
89
- const ITEM_FRAME: string = "minecraft:item_frame"
90
- const GLOW_ITEM_FRAME: string = "minecraft:glow_item_frame"
91
- const PAINTING: string = "minecraft:painting"
92
- const BOAT: string = "minecraft:boat"
93
- const MINECART: string = "minecraft:minecart"
94
- const TNT: string = "minecraft:tnt"
95
- const FALLING_BLOCK: string = "minecraft:falling_block"
96
- const ITEM: string = "minecraft:item"
97
- const XP_ORB: string = "minecraft:experience_orb"
98
- const FIREBALL: string = "minecraft:fireball"
99
- const PLAYER: string = "minecraft:player"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes