use crate::{
tile::TileType,
world::{AnglerQuest, Difficulty, Evil, MoonPhase, MoonType, World},
world_manifest::WorldManifest,
};
use bounded_vector::bvec;
use grid::Grid;
use rand::random;
use std::collections::{HashMap, HashSet};
use terra_types::{Value, Vec2, XAxis};
use time::{Duration, Time};
impl Default for World {
fn default() -> Self {
const SIZE_X: i32 = 0;
const SIZE_Y: i32 = 0;
Self {
name: "world".to_owned(),
id: random(),
uuid: None,
times_saved: 0,
is_favorite: false,
left_border: XAxis::new(0),
right_border: XAxis::new(SIZE_X * 16),
top_border: XAxis::new(0),
bottom_border: XAxis::new(SIZE_Y * 16),
seed: None,
generator_version: None,
moon_type: MoonType::Normal,
difficulty: Difficulty::Normal,
is_drunk_world: false,
is_for_the_worthy_world: false,
is_tenth_anniversary_world: false,
is_dont_starve_world: false,
is_not_the_bees_world: false,
is_remix_world: false,
is_no_traps_world: false,
is_zenith_world: false,
is_blood_moon: false,
is_solar_eclipse: false,
is_eye_of_cthulhu_downed: false,
is_eater_of_worlds_or_brain_of_cthulhu_downed: false,
is_skeleton_downed: false,
is_queen_bee_downed: false,
is_destroyer_downed: false,
is_twins_downed: false,
is_skeletron_prime_downed: false,
is_any_mechanical_boss_downed: false,
is_plantera_downed: false,
is_golem_downed: false,
is_king_slime_downed: false,
is_goblin_tinkerer_saved: false,
is_wizard_saved: false,
is_mechanic_saved: false,
is_stylist_saved: false,
is_clown_downed: false,
is_frost_legion_downed: false,
is_pirate_invasion_downed: false,
is_meteor_to_spawn: false,
is_after_party_of_doom: false,
is_hardmode: false,
creation_time: None,
angler_quest: AnglerQuest::Batfish,
cultist_delay: Duration::ZERO,
destroyed_altar_count: 0,
is_shadow_orb_or_crimson_heart_destroyed: false,
destroyed_shadow_orb_or_crimson_heart_count: 0,
dungeon: Vec2::new(0, 0),
evil: Evil::Crimson,
invasion: None,
is_angler_saved: false,
is_golfer_saved: false,
is_tax_collector_saved: false,
moon_phase: MoonPhase::FullMoon,
players_finished_angler_quest_today: vec![],
rain: None,
slime_rain_time: Duration::ZERO,
spawn: Vec2::new(SIZE_X / 2, SIZE_Y / 2),
sundial_cooldown: 0.into(),
tier_1_hardmode_ore: Some(TileType::Cobalt),
tier_2_hardmode_ore: Some(TileType::Mythril),
tier_3_hardmode_ore: Some(TileType::Adamantite),
tier_1_ore: Some(TileType::Copper),
tier_2_ore: Some(TileType::Iron),
tier_3_ore: Some(TileType::Silver),
tier_4_ore: Some(TileType::Gold),
time: Time::from_hms(7, 30, 0).expect("Valid hour"),
bestiary: HashMap::new(),
chests: bvec![],
difficulty_power: 1.0,
homes: vec![],
is_ancient_cultist_downed: false,
is_angler_shimmered: false,
is_arms_dealer_shimmered: false,
is_arms_dealer_spawn_unlocked: false,
is_bartender_saved: false,
is_bartender_shimmered: false,
is_blue_slime_spawn_unlocked: false,
is_bunny_bought: false,
is_cat_bought: false,
is_clothier_shimmered: false,
is_combat_book_used: false,
is_combat_book_volume_two_used: false,
is_copper_slime_spawn_unlocked: false,
is_cyborg_shimmered: false,
is_dd2_t1_downed: false,
is_dd2_t2_downed: false,
is_dd2_t3_downed: false,
is_deerclops_downed: false,
is_demolitionist_shimmered: false,
is_demolitionist_spawn_unlocked: false,
is_dog_bought: false,
is_dryad_shimmered: false,
is_dye_trader_shimmered: false,
is_dye_trader_spawn_unlocked: false,
is_empress_of_light_downed: false,
is_everscream_downed: false,
is_fishron_downed: false,
is_goblin_army_downed: false,
is_goblin_tinkerer_shimmered: false,
is_golfer_shimmered: false,
is_green_slime_spawn_unlocked: false,
is_guide_shimmered: false,
is_ice_queen_downed: false,
is_lunar_apocalypse: false,
is_martian_madness_downed: false,
is_mechanic_shimmered: false,
is_merchant_shimmered: false,
is_merchant_spawn_unlocked: false,
is_moondial_forward_time_active: false,
is_moonlord_downed: false,
is_mourning_wood_downed: false,
is_nebula_pillar_active: false,
is_nebula_pillar_downed: false,
is_nurse_shimmered: false,
is_nurse_spawn_unlocked: false,
is_old_man_shimmered: false,
is_old_slime_spawn_unlocked: false,
is_painter_shimmered: false,
is_party_girl_shimmered: false,
is_party_girl_spawn_unlocked: false,
is_peddlers_satchel_used: false,
is_pirate_shimmered: false,
is_princess_shimmered: false,
is_princess_spawn_unlocked: false,
is_pumpking_downed: false,
is_purple_slime_spawn_unlocked: false,
is_queen_slime_downed: false,
is_rain_frozen: false,
is_rainbow_slime_spawn_unlocked: false,
is_santa_claus_shimmered: false,
is_santa_nk1_downed: false,
is_skeleton_merchant_shimmered: false,
is_solar_pillar_active: false,
is_solar_pillar_downed: false,
is_stardust_pillar_active: false,
is_stardust_pillar_downed: false,
is_steampunker_shimmered: false,
is_stylist_shimmered: false,
is_sundial_forward_time_active: false,
is_tax_collector_shimmered: false,
is_town_slime_old_shimmered: false,
is_time_frozen: false,
is_town_bunny_shimmered: false,
is_town_cat_shimmered: false,
is_town_dog_shimmered: false,
is_town_slime_blue_shimmered: false,
is_town_slime_copper_shimmered: false,
is_town_slime_green_shimmered: false,
is_town_slime_purple_shimmered: false,
is_town_slime_rainbow_shimmered: false,
is_town_slime_red_shimmered: false,
is_town_slime_yellow_shimmered: false,
is_travelling_merchant_shimmered: false,
is_truffle_shimmered: false,
is_truffle_spawn_unlocked: false,
is_vortex_pillar_active: false,
is_vortex_pillar_downed: false,
is_wind_frozen: false,
is_witch_doctor_shimmered: false,
is_wizard_shimmered: false,
is_yellow_slime_spawn_unlocked: false,
is_zoologist_shimmered: false,
is_red_slime_unlocked: false,
moondial_cooldown: Value::new(0),
entities: bvec![],
signs: bvec![],
tile_entities: vec![],
time_rate_power: 1.0,
weighted_pressure_plates: HashSet::new(),
tiles: Grid::new_with_order(0, 0, grid::Order::ColumnMajor),
cave_back_style_changes: [0.into(); 3],
cave_back_styles: [0; 4],
tree_style_changes: [0.into(); 3],
tree_styles: [0; 4],
tree_backgrounds: [0; 3],
tree_tops_corruption: 0,
tree_tops_crimson: 0,
tree_tops_desert: 0,
tree_tops_forest: [0; 4],
tree_tops_glowing_mushroom: 0,
tree_tops_hallow: 0,
tree_tops_jungle: 0,
tree_tops_ocean: 0,
tree_tops_snow: 0,
tree_tops_underworld: 0,
is_xmas_forced_today: false,
ice_cave_background: 0,
invasion_cooldown: 0.into(),
is_hallowen_forced_today: false,
cavern_level: 0.0.into(),
cloud_bg_active: 0,
clouds_count: 0,
corruption_background: 0,
crimson_background: 0,
party_cooldown: Duration::ZERO,
is_next_night_lantern_night: false,
jungle_cave_background: 0,
desert_background: 0,
hell_background: 0,
hallow_background: 0,
snow_background: 0,
ocean_background: 0,
forest_background: 0,
jungle_background: 0,
mushroom_background: 0,
underworld_background: 0,
lantern_night: None,
party: None,
lantern_night_cooldown: 0.into(),
sandstorm: None,
surface_level: 0.0.into(),
wind: 0.0.into(),
is_biome_spread_disabled: false,
kill_count: HashMap::new(),
coin_rain_remaining: 0,
meteor_shower_remaining: 0,
is_dual_dungeon_seed: false,
is_hallowen_forced_forever: false,
is_infected_seed: false,
is_skyblock_world: false,
is_vampire_seed: false,
is_xmas_forced_forever: false,
last_played: None,
manifest: WorldManifest::default(),
team_spawns: None,
claimable_banners: HashMap::new(),
}
}
}