Add wildlife assetization support

+ add asset tests
+ migrate tundra animals
+ migrate taiga animals
+ declare temperate zone (animals yet to be created)
+ declare jungle zone (animals yet to be created)
+ declare tropical zone (animals yet to be created)
+ declare desert zone (animals yet to be created)
+ declare water (river inhabitants) zones (animals yet to be created)
This commit is contained in:
juliancoffee 2021-07-06 01:46:57 +03:00
parent 78b780e8bd
commit 19c7355c4e
50 changed files with 1077 additions and 1049 deletions

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Dreadhorn"),
body: RandomWith("dreadhorn"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Frostfang"),
body: RandomWith("frostfang"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Grolgar"),
body: RandomWith("grolgar"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Mammoth"),
body: RandomWith("mammoth"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Mountain Troll"),
body: RandomWith("troll_mountain"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Rock Snapper"),
body: RandomWith("rocksnapper"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,16 @@
EntityConfig (
name: Some("Roshwalr"),
body: Exact(QuadrupedMedium(Body(
species: Roshwalr,
body_type: Male,
))),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Snow Leopard"),
body: RandomWith("snowleopard"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Snow Raptor"),
body: RandomWith("raptor_snow"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Wendigo"),
body: RandomWith("wendigo"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Wolf"),
body: RandomWith("wolf"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Yale"),
body: RandomWith("yale"),
alignment: Alignment(Enemy),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Alpaca"),
body: RandomWith("alpaca"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Fox"),
body: Exact(QuadrupedSmall(Body(species: Fox, body_type: Female))),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Hare"),
body: Exact(QuadrupedSmall(Body(species: Hare, body_type: Female))),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Eagle"),
body: RandomWith("eagle"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Highland"),
body: RandomWith("highland"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Llama"),
body: RandomWith("llama"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Moose"),
body: RandomWith("moose"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Mouflon"),
body: RandomWith("mouflon"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Owl"),
body: RandomWith("owl"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Tuskram"),
body: RandomWith("tuskram"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,13 @@
EntityConfig (
name: Some("Yak"),
body: RandomWith("yak"),
alignment: Alignment(Wild),
loot: None,
main_tool: None,
second_tool: None,
loadout_asset: None,
skillset_asset: None,
)

View File

@ -0,0 +1,14 @@
SpawnEntry (
name: "Desert area wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (3, 6, "common.entity.wild.peaceful.zebra")),
(1, (3, 6, "common.entity.wild.peaceful.antelope")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,25 @@
SpawnEntry (
name: "Desert hot area wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.peaceful.camel")),
(1, (1, 1, "common.entity.wild.peaceful.sand_hare")),
(1, (1, 1, "common.entity.wild.peaceful.sand_salamander")),
(1, (1, 1, "common.entity.wild.peaceful.gecko")),
],
is_underwater: false,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
(1, (1, 1, "common.entity.wild.peaceful.holladon")),
(1, (1, 1, "common.entity.wild.peaceful.porcupine")),
(1, (1, 1, "common.entity.wild.peaceful.pangolin")),
],
is_underwater: false,
day_period: [Night],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Desert river wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.agressive.crocodile")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,23 @@
SpawnEntry (
name: "Desert wasteland wildlife.",
note: "",
rules: [
Pack(
groups: [
// Casual
(100, (1, 1, "common.entity.wild.aggressive.bonerattler")),
(100, (1, 1, "common.entity.wild.aggressive.sand_raptor")),
(100, (1, 1, "common.entity.wild.aggressive.ngoubou")),
(100, (1, 1, "common.entity.wild.aggressive.sandshark")),
// Rare
(20, (1, 1, "common.entity.wild.aggressive.lavadrake")),
(20, (1, 1, "common.entity.wild.aggressive.ntouka")),
(20, (1, 1, "common.entity.wild.aggressive.archaeos")),
// Ultra_rare
(1, (1, 1, "common.entity.wild.agressive.roshwalr_boss")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,30 @@
SpawnEntry (
name: "Jungle rainforest core wildlife.",
note: "Concentrated in the core of biome.",
rules: [
Pack(
groups: [
// Casual
(5, (1, 1, "common.entity.wild.aggressive.asp")),
(5, (1, 1, "common.entity.wild.aggressive.tiger")),
// Rare
(1, (1, 1, "common.entity.wild.aggressive.sunlizard")),
(1, (1, 1, "common.entity.wild.aggressive.odonto")),
(1, (1, 1, "common.entity.wild.aggressive.mighty_saurok")),
(1, (1, 1, "common.entity.wild.aggressive.occult_saurok")),
(1, (1, 1, "common.entity.wild.aggressive.sly_saurok")),
],
is_underwater: false,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.tiger")),
(1, (1, 1, "common.entity.wild.aggressive.maneater")),
(1, (1, 1, "common.entity.wild.aggressive.cockatrice")),
],
is_underwater: false,
day_period: [Night],
),
],
)

View File

@ -0,0 +1,26 @@
SpawnEntry (
name: "Jungle rainforest rare wildlife.",
note: "Spread through the area.",
rules: [
Pack(
groups: [
// Casual
(5, (1, 1, "common.entity.wild.peaceful.parrot")),
(5, (1, 1, "common.entity.wild.peaceful.quokka")),
// Rare
(1, (1, 1, "common.entity.wild.peaceful.tortoise")),
(1, (1, 1, "common.entity.wild.aggressive.monitor")),
],
is_underwater: false,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
(5, (1, 1, "common.entity.wild.peaceful.quokka")),
(1, (1, 1, "common.entity.wild.peaceful.tortoise")),
],
is_underwater: false,
day_period: [Night],
),
],
)

View File

@ -0,0 +1,18 @@
SpawnEntry (
name: "Taiga animals.",
note: "Spread through the area",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.peaceful.eagle")),
(1, (1, 1, "common.entity.wild.peaceful.owl")),
(1, (1, 1, "common.entity.wild.peaceful.arctic_fox")),
(1, (1, 1, "common.entity.wild.peaceful.moose")),
(1, (1, 1, "common.entity.wild.peaceful.arctic_hare")),
(1, (1, 1, "common.entity.wild.peaceful.tuskram")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,17 @@
SpawnEntry (
name: "Taiga pack animals.",
note: "Search for them in the heart of taiga.",
rules: [
Pack(
groups: [
(1, (1, 3, "common.entity.wild.peaceful.mouflon")),
(1, (1, 3, "common.entity.wild.peaceful.yak")),
(1, (1, 3, "common.entity.wild.peaceful.llama")),
(1, (1, 3, "common.entity.wild.peaceful.alpaca")),
(1, (1, 3, "common.entity.wild.peaceful.highland")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,14 @@
SpawnEntry (
name: "Taiga rare forest wildlife.",
note: "Search for them in the heart of the taiga, if you are feeling lucky.",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.wendigo")),
(1, (1, 1, "common.entity.wild.aggressive.dreadhorn")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Taiga forest wildlife.",
note: "Search for them in taiga forests.",
rules: [
Pack(
groups: [
(1, (3, 7, "common.entity.wild.aggressive.wolf")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Taiga water wildlife.",
note: "River inhabitants",
rules: [
Pack(
groups: [
(1, (1, 2, "common.entity.wild.aggressive.icepike")),
],
is_underwater: true,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,51 @@
SpawnEntry (
name: "Temperate rainforest wildlife.",
note: "",
rules: [
Pack(
groups: [
// Pack animals
(1, (1, 7, "common.entity.wild.peaceful.deer")),
(1, (1, 3, "common.entity.wild.peaceful.rat")),
(1, (1, 7, "common.entity.wild.peaceful.rabbit")),
(1, (1, 7, "common.entity.wild.peaceful.jackalope")),
(1, (1, 7, "common.entity.wild.peaceful.boar")),
(1, (1, 7, "common.entity.wild.peaceful.sheep")),
(1, (1, 7, "common.entity.wild.peaceful.pig")),
(1, (1, 7, "common.entity.wild.peaceful.squirrel")),
(1, (1, 7, "common.entity.wild.peaceful.horse")),
(1, (1, 7, "common.entity.wild.peaceful.cattle")),
(1, (1, 7, "common.entity.wild.peaceful.goat")),
(1, (1, 7, "common.entity.wild.peaceful.llama")),
(1, (1, 7, "common.entity.wild.peaceful.alpaca")),
(1, (1, 7, "common.entity.wild.peaceful.chicken")),
// Solitary
(2, (1, 1, "common.entity.wild.peaceful.forest_fox")),
(2, (1, 1, "common.entity.wild.peaceful.donkey")),
(2, (1, 1, "common.entity.wild.peaceful.goose")),
(2, (1, 1, "common.entity.wild.peaceful.peacock")),
(2, (1, 1, "common.entity.wild.peaceful.skunk")),
(2, (1, 1, "common.entity.wild.peaceful.raccon")),
(2, (1, 1, "common.entity.wild.peaceful.catoblepas")),
(2, (1, 1, "common.entity.wild.peaceful.turtle")),
(2, (1, 1, "common.entity.wild.peaceful.hidrasil")),
(2, (1, 1, "common.entity.wild.peaceful.truffler")),
],
is_underwater: false,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
// Solitary
(1, (1, 1, "common.entity.wild.aggressive.batfox")),
(5, (1, 1, "common.entity.wild.peaceful.forest_fox")),
(5, (1, 1, "common.entity.wild.peaceful.raccon")),
// Pack
(5, (1, 3, "common.entity.wild.peaceful.rat")),
(5, (1, 3, "common.entity.wild.peaceful.squirrel")),
],
is_underwater: false,
day_period: [Night],
),
],
)

View File

@ -0,0 +1,15 @@
SpawnEntry (
name: "Temperate rare wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.ogre")),
(1, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
(1, (1, 1, "common.entity.wild.aggressive.cyclope")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,17 @@
SpawnEntry (
name: "Temperate river wildlife.",
note: "",
rules: [
Pack(
groups: [
(5, (1, 1, "common.entity.wild.peaceful.beaver")),
(5, (1, 1, "common.entity.wild.peaceful.river_salamander")),
(5, (1, 1, "common.entity.wild.peaceful.duck")),
(1, (1, 1, "common.entity.wild.peaceful.kelpie")),
(1, (1, 1, "common.entity.wild.aggressive.hakulaq")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,15 @@
SpawnEntry (
name: "Temperate water wildlife.",
note: "River inhabitants",
rules: [
Pack(
groups: [
(1, (3, 4, "common.entity.wild.peaceful.marlin")),
(1, (3, 4, "common.entity.wild.peaceful.pirahna")),
(1, (3, 4, "common.entity.wild.peaceful.clownfish")),
],
is_underwater: true,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,17 @@
SpawnEntry (
name: "Temperate wood wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.bear")),
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(1, (1, 1, "common.entity.wild.aggressive.wood_raptor")),
(1, (1, 1, "common.entity.wild.aggressive.deadwood")),
(1, (1, 1, "common.entity.wild.aggressive.saber")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,14 @@
SpawnEntry (
name: "Tropical rainforest wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 2, "common.entity.wild.aggressive.lion")),
(1, (1, 3, "common.entity.wild.aggressive.hyena")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,15 @@
SpawnEntry (
name: "Tropical river wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 2, "common.entity.wild.peaceful.frog")),
(1, (1, 2, "common.entity.wild.peaceful.axolotl")),
(1, (1, 2, "common.entity.wild.peaceful.fungome")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Tropical rare river wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 2, "common.entity.wild.aggressive.alligator")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Tropical rocks wildlife.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.dodarock")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,16 @@
SpawnEntry (
name: "Tundra rare animals.",
note: "Search for them in the heart of tundra.",
rules: [
Pack(
groups: [
(15, (1, 1, "common.entity.wild.aggressive.snow_raptor")),
(1, (1, 1, "common.entity.wild.aggressive.wendigo")),
(1, (1, 1, "common.entity.wild.aggressive.mammoth")),
(1, (1, 1, "common.entity.wild.aggressive.mountain_troll")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,16 @@
SpawnEntry (
name: "Tundra forest animals.",
note: "",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.frostfang")),
(1, (1, 1, "common.entity.wild.aggressive.snow_leopard")),
(1, (1, 1, "common.entity.wild.aggressive.yale")),
(1, (1, 1, "common.entity.wild.aggressive.grolgar")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,13 @@
SpawnEntry (
name: "Tundra rocky animals.",
note: "Search for the rocks in tundra and you will find them.",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.rocksnapper")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -0,0 +1,15 @@
SpawnEntry (
name: "Tundra animals.",
note: "Usually you can find them in snowy areas.",
rules: [
Pack(
groups: [
(1, (1, 3, "common.entity.wild.aggressive.frostfang")),
(1, (1, 3, "common.entity.wild.aggressive.snow_raptor")),
(1, (1, 3, "common.entity.wild.aggressive.roshwalr")),
],
is_underwater: false,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -1,4 +1,6 @@
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
use serde::Deserialize;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize, Hash)]
pub enum DayPeriod {
Night,
Morning,

View File

@ -53,13 +53,16 @@ pub struct Config {
pub const CONFIG: Config = Config {
sea_level: 140.0,
mountain_scale: 2048.0,
// temperature
snow_temp: -0.8,
temperate_temp: -0.4,
tropical_temp: 0.4,
desert_temp: 0.8,
// humidity
desert_hum: 0.15,
forest_hum: 0.5,
jungle_hum: 0.75,
// water
rainfall_chunk_rate: 1.0 / (512.0 * 32.0 * 32.0),
river_roughness: 0.06125,
river_max_width: 2.0,

File diff suppressed because it is too large Load Diff