diff --git a/CHANGELOG.md b/CHANGELOG.md index e1c44314a2..3bc52937dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Experimental terrain persistence (see server documentation) - Add GPU filtering using WGPU_ADAPTER environment variable - Explosions no longer change block colours within safe zones +- The 'spot' system, which generates smaller site-like structures and scenarios +- Chestnut and cedar tree varieties ### Changed diff --git a/assets/common/entity/spot/bandit_camp/witch_dark.ron b/assets/common/entity/spot/bandit_camp/witch_dark.ron deleted file mode 100644 index 1990d9ec48..0000000000 --- a/assets/common/entity/spot/bandit_camp/witch_dark.ron +++ /dev/null @@ -1,24 +0,0 @@ -EntityConfig ( - name: Name("Witch"), - body: Exact(Humanoid(Body( - species: Human, - body_type: Female, - hair_style: 2, - beard: 0, - eyes: 0, - accessory: 0, - hair_color: 0, - skin: 0, - eye_color: 0, - ))), - alignment: Alignment(Enemy), - - loot: LootTable("common.loot_tables.humanoids"), - - hands: TwoHanded(Item("common.items.weapons.sceptre.belzeshrub")), - - meta: [ - SkillSetAsset("common.skillset.dungeon.tier-5.sceptre"), - LoadoutAsset("common.loadout.spots.witch"), - ], -) diff --git a/assets/common/entity/spot/bandit_camp/dwarf_grave_robber.ron b/assets/common/entity/spot/dwarf_grave_robber.ron similarity index 100% rename from assets/common/entity/spot/bandit_camp/dwarf_grave_robber.ron rename to assets/common/entity/spot/dwarf_grave_robber.ron diff --git a/assets/common/entity/spot/bandit_camp/grim_salvager.ron b/assets/common/entity/spot/grim_salvager.ron similarity index 72% rename from assets/common/entity/spot/bandit_camp/grim_salvager.ron rename to assets/common/entity/spot/grim_salvager.ron index c2265d86df..58466ce51d 100644 --- a/assets/common/entity/spot/bandit_camp/grim_salvager.ron +++ b/assets/common/entity/spot/grim_salvager.ron @@ -1,11 +1,11 @@ EntityConfig ( name: Name("Grim Salvager"), body: RandomWith("humanoid"), - alignment: Alignment(Enemy), + alignment: Alignment(Enemy), loot: LootTable("common.loot_tables.humanoids"), - hands: TwoHanded(Item("common.items.weapons.hammer.steel_hammer-0")), + hands: TwoHanded(Item("common.items.weapons.hammer.steel_hammer-0")), meta: [ SkillSetAsset("common.skillset.village.guard"), diff --git a/assets/common/entity/spot/bandit_camp/saurok.ron b/assets/common/entity/spot/saurok.ron similarity index 60% rename from assets/common/entity/spot/bandit_camp/saurok.ron rename to assets/common/entity/spot/saurok.ron index 6069e989e9..941339b4c2 100644 --- a/assets/common/entity/spot/bandit_camp/saurok.ron +++ b/assets/common/entity/spot/saurok.ron @@ -1,9 +1,9 @@ EntityConfig ( name: Name("Saurok Bandit"), body: RandomWith("saurok_mighty"), - alignment: Alignment(Enemy), + alignment: Alignment(Enemy), loot: LootTable("common.loot_tables.creature.biped_large.saurok"), - hands: TwoHanded(Item("common.items.npc_weapons.bow.saurok_bow")), + hands: TwoHanded(Item("common.items.npc_weapons.bow.saurok_bow")), ) diff --git a/assets/common/entity/spot/witch_dark.ron b/assets/common/entity/spot/witch_dark.ron new file mode 100644 index 0000000000..deb2ca0d77 --- /dev/null +++ b/assets/common/entity/spot/witch_dark.ron @@ -0,0 +1,24 @@ +EntityConfig ( + name: Name("Witch"), + body: Exact(Humanoid(Body( + species: Human, + body_type: Female, + hair_style: 2, + beard: 0, + eyes: 0, + accessory: 0, + hair_color: 0, + skin: 0, + eye_color: 0, + ))), + alignment: Alignment(Enemy), + + loot: LootTable("common.loot_tables.humanoids"), + + hands: TwoHanded(Item("common.items.weapons.sceptre.belzeshrub")), + + meta: [ + SkillSetAsset("common.skillset.dungeon.tier-5.sceptre"), + LoadoutAsset("common.loadout.spots.witch"), + ], +) diff --git a/assets/world/manifests/spots/jungle/saurok-altar.ron b/assets/world/manifests/spots/jungle/saurok-altar.ron index cde1018b8a..480bee2539 100644 --- a/assets/world/manifests/spots/jungle/saurok-altar.ron +++ b/assets/world/manifests/spots/jungle/saurok-altar.ron @@ -4,9 +4,9 @@ ( specifier: "world.structure.natural.saurok-altar", center: (10, 13, 3), - custom_indices: { + custom_indices: { 105: Filled(GlowingRock, (r: 161, g: 255, b: 133)), 113: Filled(GlowingRock, (r: 139, g: 245, b: 104)), - }, + }, ), ] diff --git a/assets/world/manifests/spots_general/witch_hut.ron b/assets/world/manifests/spots_general/witch_hut.ron index db02fde774..dd6003e882 100644 --- a/assets/world/manifests/spots_general/witch_hut.ron +++ b/assets/world/manifests/spots_general/witch_hut.ron @@ -1,10 +1,10 @@ #![enable(unwrap_newtypes)] -[ +[ ( specifier: "world.structure.natural.witch-hut-black_0", center: (10, 13, 16), - custom_indices: { + custom_indices: { 12: Sprite(Cauldron), 10: Sprite(WitchWindow), 44: Filled(GlowingRock, (r: 54, g: 180, b: 64)), diff --git a/assets/world/manifests/spots_grasslands/dwarven_grave.ron b/assets/world/manifests/spots_grasslands/dwarven_grave.ron index f1886ff2ce..64217ca79f 100644 --- a/assets/world/manifests/spots_grasslands/dwarven_grave.ron +++ b/assets/world/manifests/spots_grasslands/dwarven_grave.ron @@ -4,7 +4,7 @@ ( specifier: "world.structure.natural.dwarven_grave", center: (20, 23, 5), - custom_indices: { + custom_indices: { 151: Filled(GlowingRock, (r: 50, g: 255, b: 210)), 152: Filled(GlowingRock, (r: 36, g: 187, b: 151)), }, diff --git a/assets/world/manifests/spots_grasslands/gnarling_totem.ron b/assets/world/manifests/spots_grasslands/gnarling_totem.ron index d32452e1f6..78e93ff1a9 100644 --- a/assets/world/manifests/spots_grasslands/gnarling_totem.ron +++ b/assets/world/manifests/spots_grasslands/gnarling_totem.ron @@ -4,7 +4,7 @@ ( specifier: "world.structure.natural.gnarling_totem", center: (9, 5, 5), - custom_indices: { + custom_indices: { 217: Filled(GlowingRock, (r: 0, g: 255, b: 246)), }, ), diff --git a/assets/world/manifests/trees/acacias.ron b/assets/world/manifests/trees/acacias.ron deleted file mode 100644 index 6f65a0ce0f..0000000000 --- a/assets/world/manifests/trees/acacias.ron +++ /dev/null @@ -1,24 +0,0 @@ -#![enable(unwrap_newtypes)] - -[ - ( - specifier: "world.tree.acacia.1", - center: (17, 18, 4) - ), - ( - specifier: "world.tree.acacia.2", - center: (5, 5, 4) - ), - ( - specifier: "world.tree.acacia.3", - center: (6, 6, 3) - ), - ( - specifier: "world.tree.acacia.4", - center: (12, 14, 4) - ), - ( - specifier: "world.tree.acacia.5", - center: (19, 19, 4) - ), -] diff --git a/assets/world/manifests/trees/baobabs.ron b/assets/world/manifests/trees/baobabs.ron deleted file mode 100644 index 14e86dad77..0000000000 --- a/assets/world/manifests/trees/baobabs.ron +++ /dev/null @@ -1,56 +0,0 @@ -#![enable(unwrap_newtypes)] - -[ - ( - specifier: "world.tree.baobab.0", - center: (22, 28, 10) - ), - ( - specifier: "world.tree.baobab.1", - center: (18, 18, 6) - ), - ( - specifier: "world.tree.baobab.2", - center: (18, 218, 6) - ), - ( - specifier: "world.tree.baobab.3", - center: (18, 16, 10) - ), - ( - specifier: "world.tree.baobab.4", - center: (15, 16, 5) - ), - ( - specifier: "world.tree.baobab.5", - center: (11, 12, 4) - ), - ( - specifier: "world.tree.baobab.5", - center: (11, 12, 4) - ), - ( - specifier: "world.tree.baobab.5", - center: (11, 12, 4) - ), - ( - specifier: "world.tree.baobab.5", - center: (11, 12, 4) - ), - ( - specifier: "world.tree.baobab.5", - center: (11, 12, 4) - ), - ( - specifier: "world.tree.baobab.6", - center: (17, 17, 4) - ), - ( - specifier: "world.tree.acacia.2", - center: (5, 5, 4) - ), - ( - specifier: "world.tree.acacia.3", - center: (6, 6, 3) - ), -] diff --git a/assets/world/manifests/trees/mangrove_trees.ron b/assets/world/manifests/trees/mangrove_trees.ron deleted file mode 100644 index 88b6c191d5..0000000000 --- a/assets/world/manifests/trees/mangrove_trees.ron +++ /dev/null @@ -1,36 +0,0 @@ -#![enable(unwrap_newtypes)] - -[ - ( - specifier: "world.tree.mangroves.1", - center: (19, 18, 8) - ), - ( - specifier: "world.tree.mangroves.2", - center: (16, 17, 7) - ), - ( - specifier: "world.tree.mangroves.3", - center: (18, 19, 8) - ), - ( - specifier: "world.tree.mangroves.4", - center: (19, 18, 8) - ), - ( - specifier: "world.tree.mangroves.5", - center: (19, 20, 9) - ), - ( - specifier: "world.tree.mangroves.6", - center: (18, 21, 9) - ), - ( - specifier: "world.tree.mangroves.7", - center: (20, 17, 9) - ), - ( - specifier: "world.tree.mangroves.8", - center: (18, 19, 9) - ), -] diff --git a/assets/world/manifests/trees/oaks.ron b/assets/world/manifests/trees/oaks.ron deleted file mode 100644 index 51fd606414..0000000000 --- a/assets/world/manifests/trees/oaks.ron +++ /dev/null @@ -1,40 +0,0 @@ -#![enable(unwrap_newtypes)] - -[ - ( - specifier: "world.tree.oak_green.1", - center: (15, 17, 14) - ), - ( - specifier: "world.tree.oak_green.2", - center: (18, 17, 14) - ), - ( - specifier: "world.tree.oak_green.3", - center: (19, 20, 14) - ), - ( - specifier: "world.tree.oak_green.4", - center: (19, 20, 14) - ), - ( - specifier: "world.tree.oak_green.5", - center: (18, 18, 14) - ), - ( - specifier: "world.tree.oak_green.6", - center: (18, 21, 14) - ), - ( - specifier: "world.tree.oak_green.7", - center: (20, 21, 14) - ), - ( - specifier: "world.tree.oak_green.8", - center: (22, 21, 14) - ), - ( - specifier: "world.tree.oak_green.9", - center:(21, 21, 14) - ), -] diff --git a/assets/world/manifests/trees/pines.ron b/assets/world/manifests/trees/pines.ron deleted file mode 100644 index 7710fe37ab..0000000000 --- a/assets/world/manifests/trees/pines.ron +++ /dev/null @@ -1,36 +0,0 @@ -#![enable(unwrap_newtypes)] - -[ - ( - specifier: "world.tree.pine_green.1", - center: (15, 15, 14) - ), - ( - specifier: "world.tree.pine_green.2", - center: (15, 15, 14) - ), - ( - specifier: "world.tree.pine_green.3", - center: (17, 15, 12) - ), - ( - specifier: "world.tree.pine_green.4", - center: (10, 8, 12) - ), - ( - specifier: "world.tree.pine_green.5", - center: (12, 12, 12) - ), - ( - specifier: "world.tree.pine_green.6", - center: (11, 10, 12) - ), - ( - specifier: "world.tree.pine_green.7", - center: (16, 15, 12) - ), - ( - specifier: "world.tree.pine_green.8", - center: (12, 10, 12) - ), -] diff --git a/assets/world/style/colors.ron b/assets/world/style/colors.ron index ecbc2e017c..c01b322e19 100644 --- a/assets/world/style/colors.ron +++ b/assets/world/style/colors.ron @@ -18,11 +18,12 @@ GreenSludge: None, // Leaves all actually get interpolated. TemperateLeaves: [ - (start: (20, 100, 40), end: (60, 120, 0)), - //(start: (178, 216, 0), end: (255, 185, 63)), - //(start: (142, 164, 0), end: (142, 164, 0)), - //(start: (168, 81, 0), end: (54, 150, 31)), - ], + (start: (20, 100, 40), end: (60, 120, 0)), + // TODO: Uncomment when we add autumnal trees + //(start: (178, 216, 0), end: (255, 185, 63)), + //(start: (142, 164, 0), end: (142, 164, 0)), + //(start: (168, 81, 0), end: (54, 150, 31)), + ], PineLeaves: [(start: (0, 60, 50), end: (30, 80, 10))], PalmLeavesInner: [(start: (70, 140, 43), end: (55, 140, 32))], PalmLeavesOuter: [(start: (60, 130, 38), end: (30, 130, 65))], diff --git a/assets/world/tree/acacia/1.vox b/assets/world/tree/acacia/1.vox deleted file mode 100644 index 1e34877f5c..0000000000 --- a/assets/world/tree/acacia/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1b58989ac01175fba006ec70815959a8cdc7fe3035c43f3464a06afd5f65f98 -size 8360 diff --git a/assets/world/tree/acacia/2.vox b/assets/world/tree/acacia/2.vox deleted file mode 100644 index b7719a4cec..0000000000 --- a/assets/world/tree/acacia/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b17758334983bbd97eef5a66b64c1828bee6df480b745ed2e47e046c047f10e -size 1420 diff --git a/assets/world/tree/acacia/3.vox b/assets/world/tree/acacia/3.vox deleted file mode 100644 index d0c14bc134..0000000000 --- a/assets/world/tree/acacia/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adc156f886d8fddc6c456ec85c21c0561aee7fa5f51a1a9b074b704e3c0b92ad -size 1688 diff --git a/assets/world/tree/acacia/4.vox b/assets/world/tree/acacia/4.vox deleted file mode 100644 index ebeb422216..0000000000 --- a/assets/world/tree/acacia/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ece352f8ce6034fd20efca429b46426a66a7a2e637a6ec82b8e718af14ceb547 -size 8088 diff --git a/assets/world/tree/acacia/5.vox b/assets/world/tree/acacia/5.vox deleted file mode 100644 index 77c24923f8..0000000000 --- a/assets/world/tree/acacia/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c030cffb4f8f5f908a70046bef904daa4e065d78f718ec22579a05139fba4103 -size 8564 diff --git a/assets/world/tree/acacia_2/1.vox b/assets/world/tree/acacia_2/1.vox deleted file mode 100644 index 1e34877f5c..0000000000 --- a/assets/world/tree/acacia_2/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1b58989ac01175fba006ec70815959a8cdc7fe3035c43f3464a06afd5f65f98 -size 8360 diff --git a/assets/world/tree/acacia_2/2.vox b/assets/world/tree/acacia_2/2.vox deleted file mode 100644 index b7719a4cec..0000000000 --- a/assets/world/tree/acacia_2/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b17758334983bbd97eef5a66b64c1828bee6df480b745ed2e47e046c047f10e -size 1420 diff --git a/assets/world/tree/acacia_2/3.vox b/assets/world/tree/acacia_2/3.vox deleted file mode 100644 index d0c14bc134..0000000000 --- a/assets/world/tree/acacia_2/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adc156f886d8fddc6c456ec85c21c0561aee7fa5f51a1a9b074b704e3c0b92ad -size 1688 diff --git a/assets/world/tree/acacia_2/4.vox b/assets/world/tree/acacia_2/4.vox deleted file mode 100644 index ebeb422216..0000000000 --- a/assets/world/tree/acacia_2/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ece352f8ce6034fd20efca429b46426a66a7a2e637a6ec82b8e718af14ceb547 -size 8088 diff --git a/assets/world/tree/acacia_2/5.vox b/assets/world/tree/acacia_2/5.vox deleted file mode 100644 index 77c24923f8..0000000000 --- a/assets/world/tree/acacia_2/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c030cffb4f8f5f908a70046bef904daa4e065d78f718ec22579a05139fba4103 -size 8564 diff --git a/assets/world/tree/acacia_3/1.vox b/assets/world/tree/acacia_3/1.vox deleted file mode 100644 index 310198c54f..0000000000 --- a/assets/world/tree/acacia_3/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e1fee1ea15e891aa424ea8054f5ea5bb02f1e6991c771d4191f0e655aba109b -size 22600 diff --git a/assets/world/tree/acacia_3/2.vox b/assets/world/tree/acacia_3/2.vox deleted file mode 100644 index 08cb8d7e49..0000000000 --- a/assets/world/tree/acacia_3/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:976e990871ab219ca3023eaaad8d7e92a5ed4823555b819dabce6c60581a922f -size 2160 diff --git a/assets/world/tree/acacia_3/3.vox b/assets/world/tree/acacia_3/3.vox deleted file mode 100644 index cb06009f12..0000000000 --- a/assets/world/tree/acacia_3/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d9bb5949defcad8260a0293a6e42429440dfff4833edfa9a04caf06ef5895e3 -size 3068 diff --git a/assets/world/tree/acacia_3/4.vox b/assets/world/tree/acacia_3/4.vox deleted file mode 100644 index 30b2e0efde..0000000000 --- a/assets/world/tree/acacia_3/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2071db98db659494ee497e7ed728c3cbf838fb7f02594b5255417e5e13e182ac -size 17712 diff --git a/assets/world/tree/acacia_3/5.vox b/assets/world/tree/acacia_3/5.vox deleted file mode 100644 index 9cf8015236..0000000000 --- a/assets/world/tree/acacia_3/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9fc04f31dd7fb85219500d6145233663e6f1a040aed8b4acc84585e626c10b82 -size 33720 diff --git a/assets/world/tree/baobab/0.vox b/assets/world/tree/baobab/0.vox deleted file mode 100644 index 68a379a9dc..0000000000 --- a/assets/world/tree/baobab/0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90ea3ef9bae85ff7bea6389c34ae3405a220406693b0c5f446bfea8d54c7d796 -size 57876 diff --git a/assets/world/tree/baobab/1.vox b/assets/world/tree/baobab/1.vox deleted file mode 100644 index bf0d6e86fb..0000000000 --- a/assets/world/tree/baobab/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2dcfe54206c7d93f042562fd927b9bec6353924ef9771737162bb0d48df8f118 -size 30268 diff --git a/assets/world/tree/baobab/2.vox b/assets/world/tree/baobab/2.vox deleted file mode 100644 index 0d45d49310..0000000000 --- a/assets/world/tree/baobab/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f5958a12af3f885457fa3336a80b34cec329c87f4a20acbde0f4604fd072cac -size 27580 diff --git a/assets/world/tree/baobab/3.vox b/assets/world/tree/baobab/3.vox deleted file mode 100644 index d80156720c..0000000000 --- a/assets/world/tree/baobab/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cebd3eb0da76ecc1880479c848e942c86f5f0ce44d504582bc958bebf3669e4 -size 22696 diff --git a/assets/world/tree/baobab/4.vox b/assets/world/tree/baobab/4.vox deleted file mode 100644 index 5b9cf421e0..0000000000 --- a/assets/world/tree/baobab/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e74f070033aefcdedd47bbc3b6430fe1e6985b337c9a75968f395c2742aeaa2 -size 17876 diff --git a/assets/world/tree/baobab/5.vox b/assets/world/tree/baobab/5.vox deleted file mode 100644 index baa54642d9..0000000000 --- a/assets/world/tree/baobab/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bfb95bf94806d94574b24ab8d24925ef9602d399fc37c24b187e25cf215cb130 -size 7820 diff --git a/assets/world/tree/baobab/6.vox b/assets/world/tree/baobab/6.vox deleted file mode 100644 index ecb1db2404..0000000000 --- a/assets/world/tree/baobab/6.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ffb0e2987091f1d841885ea39ea1be2bfaba2c1852aa40beef39c68d37c4aba -size 18952 diff --git a/assets/world/tree/mangroves/1.vox b/assets/world/tree/mangroves/1.vox deleted file mode 100644 index 35ceab2cda..0000000000 --- a/assets/world/tree/mangroves/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23658faec4e759287a5d5b48c4f79562cd51e0271922d740cf21bf6b3fd1da8b -size 38312 diff --git a/assets/world/tree/mangroves/2.vox b/assets/world/tree/mangroves/2.vox deleted file mode 100644 index c9c4f2be2c..0000000000 --- a/assets/world/tree/mangroves/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d697913274af3963801db91db118228969383112c2167e023bb7042f4babcea5 -size 27900 diff --git a/assets/world/tree/mangroves/3.vox b/assets/world/tree/mangroves/3.vox deleted file mode 100644 index 622dc39174..0000000000 --- a/assets/world/tree/mangroves/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7626ee7467e8a37b516c4c9d81763e35230aa760975a3307ab9cc197efef1004 -size 52528 diff --git a/assets/world/tree/mangroves/4.vox b/assets/world/tree/mangroves/4.vox deleted file mode 100644 index 15a65048c4..0000000000 --- a/assets/world/tree/mangroves/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc5cf476e2a7ac97c0d52bd8d164db18c153d08adfd21327eb04c7a9f77459ca -size 48860 diff --git a/assets/world/tree/mangroves/5.vox b/assets/world/tree/mangroves/5.vox deleted file mode 100644 index 9deb4f07bf..0000000000 --- a/assets/world/tree/mangroves/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5fcbb99af03f6c69ac8809616ce0948ae83dae6418ecfeeb1ea385325d8d888 -size 44852 diff --git a/assets/world/tree/mangroves/6.vox b/assets/world/tree/mangroves/6.vox deleted file mode 100644 index dcd4c248cc..0000000000 --- a/assets/world/tree/mangroves/6.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec650fe354dde4546d6bb910edb709c71955cd2020a762e2ab5516bc6ceb22eb -size 63060 diff --git a/assets/world/tree/mangroves/7.vox b/assets/world/tree/mangroves/7.vox deleted file mode 100644 index 1c039a13f1..0000000000 --- a/assets/world/tree/mangroves/7.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2bf44e30f091d854deb2d164972294f278040d13d2ff12b7faef55832eb02159 -size 49744 diff --git a/assets/world/tree/mangroves/8.vox b/assets/world/tree/mangroves/8.vox deleted file mode 100644 index 2de12860d1..0000000000 --- a/assets/world/tree/mangroves/8.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7e12c756144c76edbb9250fbd85a7ff3f1e365ff490cfecbf141b9ef10bad86b -size 68520 diff --git a/assets/world/tree/oak_green/1.vox b/assets/world/tree/oak_green/1.vox deleted file mode 100644 index 2f3f218fc4..0000000000 --- a/assets/world/tree/oak_green/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ae73d01cec664140951e5352897e23d1be22023e298e6f23640b7114f3afe2d -size 37436 diff --git a/assets/world/tree/oak_green/2.vox b/assets/world/tree/oak_green/2.vox deleted file mode 100644 index efe83ff0c5..0000000000 --- a/assets/world/tree/oak_green/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a3a77fac13fddda713f3ab5ccce14db9e823f12f1a2a4635fa62e476180d73c -size 45696 diff --git a/assets/world/tree/oak_green/3.vox b/assets/world/tree/oak_green/3.vox deleted file mode 100644 index eb25589e2c..0000000000 --- a/assets/world/tree/oak_green/3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4187d7ed8d8e68f8dec18e4ac1a58843c618820bf3c5eaa18147debc9d99e885 -size 71820 diff --git a/assets/world/tree/oak_green/4.vox b/assets/world/tree/oak_green/4.vox deleted file mode 100644 index 94b332c90b..0000000000 --- a/assets/world/tree/oak_green/4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c548dd81c891b427eee64181abfcfab93e5f4a0b8e094c615abf6d6d7b05d536 -size 46348 diff --git a/assets/world/tree/oak_green/5.vox b/assets/world/tree/oak_green/5.vox deleted file mode 100644 index 8e8a0024d8..0000000000 --- a/assets/world/tree/oak_green/5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab50dbd7b07351299187edafc3a57b27fe7a1547a570d808612ee0897858c4b7 -size 52072 diff --git a/assets/world/tree/oak_green/6.vox b/assets/world/tree/oak_green/6.vox deleted file mode 100644 index 251daa43ae..0000000000 --- a/assets/world/tree/oak_green/6.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b59539ce4aa45d8c68ca2d44c7ded05870f5d56185b996eafd8606cdb4a1e1cf -size 69392 diff --git a/assets/world/tree/oak_green/7.vox b/assets/world/tree/oak_green/7.vox deleted file mode 100644 index 94b332c90b..0000000000 --- a/assets/world/tree/oak_green/7.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c548dd81c891b427eee64181abfcfab93e5f4a0b8e094c615abf6d6d7b05d536 -size 46348 diff --git a/assets/world/tree/oak_green/8.vox b/assets/world/tree/oak_green/8.vox deleted file mode 100644 index a9b43adb18..0000000000 --- a/assets/world/tree/oak_green/8.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d377ea2188ec402c601ee1ab84f557eb0777154ac05e36f0f3448ed3800956c8 -size 73128 diff --git a/assets/world/tree/oak_green/9.vox b/assets/world/tree/oak_green/9.vox deleted file mode 100644 index 9169bc887b..0000000000 --- a/assets/world/tree/oak_green/9.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:885b58ef71185d76fb4874b40f2c6bdb70864d3cd2c644a45a3bd7c5b024a999 -size 81020 diff --git a/world/src/block/mod.rs b/world/src/block/mod.rs index 04c3a312a2..d1ce83457f 100644 --- a/world/src/block/mod.rs +++ b/world/src/block/mod.rs @@ -278,7 +278,7 @@ pub fn block_from_structure( } else { Block::air(SpriteKind::Empty) }; - if field.get(pos + structure_pos) % 16 < 8 { + if field.chance(pos + structure_pos, 0.5) { Some(block) } else { Some(block.with_sprite(SpriteKind::Chest)) @@ -302,7 +302,9 @@ pub fn block_from_structure( let range = if ranges.is_empty() { None } else { - ranges.get(RandomPerm::new(structure_seed).get(13) as usize % ranges.len()) + ranges.get( + RandomPerm::new(structure_seed).get(structure_seed) as usize % ranges.len(), + ) }; range.map(|range| { diff --git a/world/src/canvas.rs b/world/src/canvas.rs index fe91f422f1..30fc4b424a 100644 --- a/world/src/canvas.rs +++ b/world/src/canvas.rs @@ -57,6 +57,8 @@ impl<'a> CanvasInfo<'a> { }) } + /// Find all spots within range of this canvas's chunk. Returns `(wpos, + /// spot, seed)`. pub fn nearby_spots(&self) -> impl Iterator, Spot, u32)> + '_ { (-1..2) .map(|x| (-1..2).map(move |y| Vec2::new(x, y))) diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index 3b01747005..42c9aed703 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -31,7 +31,6 @@ use vek::*; /// that composes the spot and the entities that should be spawned there. #[derive(Copy, Clone, Debug)] pub enum Spot { - // *Themed Spots* DwarvenGrave, SaurokAltar, RockCircle, @@ -56,19 +55,6 @@ pub enum Spot { Shipwreck, } -// Available Biomes are: -//Void -//Lake -//Grassland -//Ocean -//Mountain -//Snowland -//Desert -//Swamp -//Jungle -//Forest -//Savannah - impl Spot { pub fn generate(world: &mut WorldSim) { use BiomeKind::*; @@ -312,6 +298,8 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { entity_radius: f32, // The entities that should be spawned in the spot, from closest to furthest // (count_range, spec) + // count_range = number of entities, chosen randomly within this range + // spec = Manifest spec for the entity kind entities: &'a [(Range, &'a str)], } @@ -320,7 +308,7 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { Spot::DwarvenGrave => SpotConfig { base_structures: Some("spots_grasslands.dwarven_grave"), entity_radius: 60.0, - entities: &[(6..12, "common.entity.spot.bandit_camp.dwarf_grave_robber")], + entities: &[(6..12, "common.entity.spot.dwarf_grave_robber")], }, Spot::SaurokAltar => SpotConfig { base_structures: Some("spots.jungle.saurok-altar"), @@ -349,7 +337,7 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { base_structures: Some("spots_general.witch_hut"), entity_radius: 1.0, entities: &[ - (1..2, "common.entity.spot.bandit_camp.witch_dark"), + (1..2, "common.entity.spot.witch_dark"), (0..4, "common.entity.wild.peaceful.cat"), (0..3, "common.entity.wild.peaceful.frog"), ], @@ -382,7 +370,7 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { Spot::AirshipCrash => SpotConfig { base_structures: Some("trees.airship_crash"), entity_radius: 20.0, - entities: &[(4..9, "common.entity.spot.bandit_camp.grim_salvager")], + entities: &[(4..9, "common.entity.spot.grim_salvager")], }, Spot::FruitTree => SpotConfig { base_structures: Some("trees.fruit_trees"), diff --git a/world/src/layer/tree.rs b/world/src/layer/tree.rs index 799a91894c..dc8cf8a08d 100644 --- a/world/src/layer/tree.rs +++ b/world/src/layer/tree.rs @@ -20,17 +20,11 @@ use std::{f32, ops::Range}; use vek::*; lazy_static! { - static ref OAKS: AssetHandle = Structure::load_group("trees.oaks"); static ref OAK_STUMPS: AssetHandle = Structure::load_group("trees.oak_stumps"); - static ref PINES: AssetHandle = Structure::load_group("trees.pines"); static ref PALMS: AssetHandle = Structure::load_group("trees.palms"); - static ref ACACIAS: AssetHandle = Structure::load_group("trees.acacias"); - static ref BAOBABS: AssetHandle = Structure::load_group("trees.baobabs"); static ref FRUIT_TREES: AssetHandle = Structure::load_group("trees.fruit_trees"); static ref BIRCHES: AssetHandle = Structure::load_group("trees.birch"); - static ref MANGROVE_TREES: AssetHandle = - Structure::load_group("trees.mangrove_trees"); static ref SWAMP_TREES: AssetHandle = Structure::load_group("trees.swamp_trees"); } @@ -104,7 +98,6 @@ pub fn apply_trees_to(canvas: &mut Canvas, dynamic_rng: &mut impl Rng) { StructureBlock::Acacia, ); }, - // ForestKind::Acacia => *ACACIAS, ForestKind::Baobab => { break 'model TreeModel::Procedural( ProceduralTree::generate( @@ -114,8 +107,6 @@ pub fn apply_trees_to(canvas: &mut Canvas, dynamic_rng: &mut impl Rng) { StructureBlock::Baobab, ); }, - // ForestKind::Baobab => *BAOBABS, - // ForestKind::Oak => *OAKS, ForestKind::Oak => { break 'model TreeModel::Procedural( ProceduralTree::generate( @@ -134,7 +125,6 @@ pub fn apply_trees_to(canvas: &mut Canvas, dynamic_rng: &mut impl Rng) { StructureBlock::Chestnut, ); }, - //ForestKind::Pine => *PINES, ForestKind::Pine => { break 'model TreeModel::Procedural( ProceduralTree::generate( @@ -154,7 +144,6 @@ pub fn apply_trees_to(canvas: &mut Canvas, dynamic_rng: &mut impl Rng) { ); }, ForestKind::Birch => *BIRCHES, - // ForestKind::Mangrove => *MANGROVE_TREES, ForestKind::Mangrove => { break 'model TreeModel::Procedural( ProceduralTree::generate( @@ -449,7 +438,7 @@ impl TreeConfig { branch_child_radius_lerp: true, leaf_radius: 4.5 * log_scale..5.5 * log_scale, leaf_radius_scaled: 0.0, - straightness: 0.3, + straightness: 0.4, max_depth: 5, splits: 1.75..2.25, split_range: 1.0..1.25, diff --git a/world/src/sim/mod.rs b/world/src/sim/mod.rs index 744ff14488..43005634e3 100644 --- a/world/src/sim/mod.rs +++ b/world/src/sim/mod.rs @@ -2068,6 +2068,7 @@ impl WorldSim { near_water: if chunk.river.is_lake() || chunk.river.near_river() || chunk.alt < CONFIG.sea_level + 6.0 + // Close to sea in altitude { 1.0 } else {