use common::{ comp::{ inventory::item::MaterialStatManifest, skills::{GeneralSkill, Skill}, Auras, Buffs, CharacterState, Collider, Combo, Controller, Energy, Health, Ori, Pos, Stats, Vel, }, resources::{DeltaTime, GameMode, Time}, skillset_builder::SkillSetBuilder, terrain::{Block, BlockKind, SpriteKind, TerrainChunk, TerrainChunkMeta, TerrainGrid}, }; use common_ecs::{dispatch, System}; use common_net::sync::WorldSyncExt; use common_state::State; use rand::{prelude::*, rngs::SmallRng}; use specs::{Builder, Entity, WorldExt}; use std::{error::Error, sync::Arc, time::Duration}; use vek::{Rgb, Vec2, Vec3}; use veloren_common_systems::{character_behavior, phys}; pub const EPSILON: f32 = 0.00002; const DT_MILLIS: u64 = 10; const MILLIS_PER_SEC: f64 = 1_000.0; pub const DT: Duration = Duration::from_millis(DT_MILLIS); pub const DT_F64: f64 = DT_MILLIS as f64 / MILLIS_PER_SEC; pub fn setup() -> State { let mut state = State::new(GameMode::Server); state.ecs_mut().insert(MaterialStatManifest::with_empty()); state.ecs_mut().read_resource::