mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Improved quadruped origin
Former-commit-id: 35a360bf285f2495dda7859cb8d376d5aa16a1af
This commit is contained in:
parent
7ac973623f
commit
5092df0e7f
@ -216,7 +216,7 @@ impl Client {
|
|||||||
'outer: for dist in 0..10 {
|
'outer: for dist in 0..10 {
|
||||||
for i in chunk_pos.x - dist..chunk_pos.x + dist + 1 {
|
for i in chunk_pos.x - dist..chunk_pos.x + dist + 1 {
|
||||||
for j in chunk_pos.y - dist..chunk_pos.y + dist + 1 {
|
for j in chunk_pos.y - dist..chunk_pos.y + dist + 1 {
|
||||||
for k in 0..3 {
|
for k in 0..6 {
|
||||||
let key = Vec3::new(i, j, k);
|
let key = Vec3::new(i, j, k);
|
||||||
if self.state.terrain().get_key(key).is_none()
|
if self.state.terrain().get_key(key).is_none()
|
||||||
&& !self.pending_chunks.contains(&key)
|
&& !self.pending_chunks.contains(&key)
|
||||||
|
@ -9,7 +9,7 @@ pub enum ClientMsg {
|
|||||||
},
|
},
|
||||||
Character {
|
Character {
|
||||||
name: String,
|
name: String,
|
||||||
body: comp::HumanoidBody,
|
body: comp::Body,
|
||||||
},
|
},
|
||||||
RequestState(ClientState),
|
RequestState(ClientState),
|
||||||
Ping,
|
Ping,
|
||||||
|
@ -133,15 +133,9 @@ impl Server {
|
|||||||
entity: EcsEntity,
|
entity: EcsEntity,
|
||||||
client: &mut Client,
|
client: &mut Client,
|
||||||
name: String,
|
name: String,
|
||||||
body: comp::HumanoidBody,
|
body: comp::Body,
|
||||||
) {
|
) {
|
||||||
state.write_component(
|
state.write_component(entity, comp::Actor::Character { name, body });
|
||||||
entity,
|
|
||||||
comp::Actor::Character {
|
|
||||||
name,
|
|
||||||
body: comp::Body::Humanoid(body),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
state.write_component(entity, comp::Stats::default());
|
state.write_component(entity, comp::Stats::default());
|
||||||
state.write_component(entity, comp::phys::Pos(Vec3::new(0.0, 0.0, 64.0)));
|
state.write_component(entity, comp::phys::Pos(Vec3::new(0.0, 0.0, 64.0)));
|
||||||
state.write_component(entity, comp::phys::Vel(Vec3::zero()));
|
state.write_component(entity, comp::phys::Vel(Vec3::zero()));
|
||||||
|
@ -43,27 +43,27 @@ impl Animation for IdleAnimation {
|
|||||||
* 0.25,
|
* 0.25,
|
||||||
);
|
);
|
||||||
|
|
||||||
next.pighead.offset = Vec3::new(0.0, 7.0, -1.5 + wave * 0.2) / 11.0;
|
next.pighead.offset = Vec3::new(0.0, -2.0, -1.5 + wave * 0.2) / 11.0;
|
||||||
next.pighead.ori = Quaternion::rotation_z(pighead_look.x) * Quaternion::rotation_x(pighead_look.y + wavecos_slow * 0.03);
|
next.pighead.ori = Quaternion::rotation_z(pighead_look.x) * Quaternion::rotation_x(pighead_look.y + wavecos_slow * 0.03);
|
||||||
next.pighead.scale = Vec3::one() / 10.5;
|
next.pighead.scale = Vec3::one() / 10.5;
|
||||||
|
|
||||||
next.pigchest.offset = Vec3::new(wave_slow * 0.05, 0.0, 1.5 + wavecos_slow * 0.4) / 11.0;
|
next.pigchest.offset = Vec3::new(wave_slow * 0.05, -9.0, 1.5 + wavecos_slow * 0.4) / 11.0;
|
||||||
next.pigchest.ori = Quaternion::rotation_y(wave_slow * 0.05);
|
next.pigchest.ori = Quaternion::rotation_y(wave_slow * 0.05);
|
||||||
next.pigchest.scale = Vec3::one() / 11.0;
|
next.pigchest.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglf_leg.offset = Vec3::new(-4.5, 11.0, 1.5) / 11.0;
|
next.piglf_leg.offset = Vec3::new(-4.5, 2.0, 1.5) / 11.0;
|
||||||
next.piglf_leg.ori = Quaternion::rotation_x(wave_slow * 0.08);
|
next.piglf_leg.ori = Quaternion::rotation_x(wave_slow * 0.08);
|
||||||
next.piglf_leg.scale = Vec3::one() / 11.0;
|
next.piglf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrf_leg.offset = Vec3::new(2.5, 11.0, 1.5) / 11.0;
|
next.pigrf_leg.offset = Vec3::new(2.5, 2.0, 1.5) / 11.0;
|
||||||
next.pigrf_leg.ori = Quaternion::rotation_x(wavecos_slow * 0.08);
|
next.pigrf_leg.ori = Quaternion::rotation_x(wavecos_slow * 0.08);
|
||||||
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglb_leg.offset = Vec3::new(-4.5, 6.0, 1.5) / 11.0;
|
next.piglb_leg.offset = Vec3::new(-4.5, -3.0, 1.5) / 11.0;
|
||||||
next.piglb_leg.ori = Quaternion::rotation_x(wavecos_slow * 0.08);
|
next.piglb_leg.ori = Quaternion::rotation_x(wavecos_slow * 0.08);
|
||||||
next.piglb_leg.scale = Vec3::one() / 11.0;
|
next.piglb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrb_leg.offset = Vec3::new(2.5, 6.0, 1.5) / 11.0;
|
next.pigrb_leg.offset = Vec3::new(2.5, -3.0, 1.5) / 11.0;
|
||||||
next.pigrb_leg.ori = Quaternion::rotation_x(wave_slow * 0.08);
|
next.pigrb_leg.ori = Quaternion::rotation_x(wave_slow * 0.08);
|
||||||
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
|
@ -30,27 +30,27 @@ impl Animation for JumpAnimation {
|
|||||||
let wave_stop = (anim_time as f32 * 4.5).min(PI / 2.0).sin();
|
let wave_stop = (anim_time as f32 * 4.5).min(PI / 2.0).sin();
|
||||||
|
|
||||||
|
|
||||||
next.pighead.offset = Vec3::new(0.0, 9.0, -1.5 ) / 11.0;
|
next.pighead.offset = Vec3::new(0.0, 0.0, -1.5 ) / 11.0;
|
||||||
next.pighead.ori = Quaternion::rotation_x(wave_stop * 0.4);
|
next.pighead.ori = Quaternion::rotation_x(wave_stop * 0.4);
|
||||||
next.pighead.scale = Vec3::one() / 10.5;
|
next.pighead.scale = Vec3::one() / 10.5;
|
||||||
|
|
||||||
next.pigchest.offset = Vec3::new(0.0, 0.0, 1.5) / 11.0;
|
next.pigchest.offset = Vec3::new(0.0, -9.0, 1.5) / 11.0;
|
||||||
next.pigchest.ori = Quaternion::rotation_x(0.0);
|
next.pigchest.ori = Quaternion::rotation_x(0.0);
|
||||||
next.pigchest.scale = Vec3::one() / 11.0;
|
next.pigchest.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglf_leg.offset = Vec3::new(-4.5, 12.0, 1.5) / 11.0;
|
next.piglf_leg.offset = Vec3::new(-4.5, 3.0, 1.5) / 11.0;
|
||||||
next.piglf_leg.ori = Quaternion::rotation_x(wave_stop * 0.6);
|
next.piglf_leg.ori = Quaternion::rotation_x(wave_stop * 0.6);
|
||||||
next.piglf_leg.scale = Vec3::one() / 11.0;
|
next.piglf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrf_leg.offset = Vec3::new(2.5, 12.0, 1.5) / 11.0;
|
next.pigrf_leg.offset = Vec3::new(2.5, 3.0, 1.5) / 11.0;
|
||||||
next.pigrf_leg.ori = Quaternion::rotation_x(wave_stop * 0.6 - wave_slow * 0.3);
|
next.pigrf_leg.ori = Quaternion::rotation_x(wave_stop * 0.6 - wave_slow * 0.3);
|
||||||
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglb_leg.offset = Vec3::new(-4.5, 5.0, 2.0) / 11.0;
|
next.piglb_leg.offset = Vec3::new(-4.5, -4.0, 2.0) / 11.0;
|
||||||
next.piglb_leg.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3);
|
next.piglb_leg.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3);
|
||||||
next.piglb_leg.scale = Vec3::one() / 11.0;
|
next.piglb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrb_leg.offset = Vec3::new(2.5, 5.0, 2.0) / 11.0;
|
next.pigrb_leg.offset = Vec3::new(2.5, -4.0, 2.0) / 11.0;
|
||||||
next.pigrb_leg.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3);
|
next.pigrb_leg.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3);
|
||||||
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
|
@ -30,27 +30,27 @@ impl Animation for RunAnimation {
|
|||||||
let wavecos_slow = (anim_time as f32 * 8.0 + PI).cos();
|
let wavecos_slow = (anim_time as f32 * 8.0 + PI).cos();
|
||||||
let wave_dip = (wave_slow.abs() - 0.5).abs();
|
let wave_dip = (wave_slow.abs() - 0.5).abs();
|
||||||
|
|
||||||
next.pighead.offset = Vec3::new(0.0, 9.0, -1.5 + wave * 1.5) / 11.0;
|
next.pighead.offset = Vec3::new(0.0, 0.0, -1.5 + wave * 1.5) / 11.0;
|
||||||
next.pighead.ori = Quaternion::rotation_x(0.2 + wave * 0.05) * Quaternion::rotation_y(wavecos * 0.03);
|
next.pighead.ori = Quaternion::rotation_x(0.2 + wave * 0.05) * Quaternion::rotation_y(wavecos * 0.03);
|
||||||
next.pighead.scale = Vec3::one() / 10.5;
|
next.pighead.scale = Vec3::one() / 10.5;
|
||||||
|
|
||||||
next.pigchest.offset = Vec3::new(0.0, 0.0, 1.5 + wavecos * 1.2) / 11.0;
|
next.pigchest.offset = Vec3::new(0.0, -9.0, 1.5 + wavecos * 1.2) / 11.0;
|
||||||
next.pigchest.ori = Quaternion::rotation_x(wave * 0.1);
|
next.pigchest.ori = Quaternion::rotation_x(wave * 0.1);
|
||||||
next.pigchest.scale = Vec3::one() / 11.0;
|
next.pigchest.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglf_leg.offset = Vec3::new(-4.5, 11.0 + wavequick * 0.8, 2.5 + wavequickcos * 1.5) / 11.0;
|
next.piglf_leg.offset = Vec3::new(-4.5, 2.0 + wavequick * 0.8, 2.5 + wavequickcos * 1.5) / 11.0;
|
||||||
next.piglf_leg.ori = Quaternion::rotation_x(wavequick * 0.3);
|
next.piglf_leg.ori = Quaternion::rotation_x(wavequick * 0.3);
|
||||||
next.piglf_leg.scale = Vec3::one() / 11.0;
|
next.piglf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrf_leg.offset = Vec3::new(2.5, 11.0 - wavequickcos * 0.8, 2.5 + wavequick * 1.5) / 11.0;
|
next.pigrf_leg.offset = Vec3::new(2.5, 2.0 - wavequickcos * 0.8, 2.5 + wavequick * 1.5) / 11.0;
|
||||||
next.pigrf_leg.ori = Quaternion::rotation_x(wavequickcos * -0.3);
|
next.pigrf_leg.ori = Quaternion::rotation_x(wavequickcos * -0.3);
|
||||||
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
next.pigrf_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.piglb_leg.offset = Vec3::new(-4.5, 6.0 - wavequickcos * 0.8, 2.5 + wavequick * 1.5) / 11.0;
|
next.piglb_leg.offset = Vec3::new(-4.5, -3.0 - wavequickcos * 0.8, 2.5 + wavequick * 1.5) / 11.0;
|
||||||
next.piglb_leg.ori = Quaternion::rotation_x(wavequickcos * -0.3);
|
next.piglb_leg.ori = Quaternion::rotation_x(wavequickcos * -0.3);
|
||||||
next.piglb_leg.scale = Vec3::one() / 11.0;
|
next.piglb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
next.pigrb_leg.offset = Vec3::new(2.5, 6.0 + wavequick * 0.8, 2.5 + wavequickcos * 1.5) / 11.0;
|
next.pigrb_leg.offset = Vec3::new(2.5, -3.0 + wavequick * 0.8, 2.5 + wavequickcos * 1.5) / 11.0;
|
||||||
next.pigrb_leg.ori = Quaternion::rotation_x(wavequick * 0.3);
|
next.pigrb_leg.ori = Quaternion::rotation_x(wavequick * 0.3);
|
||||||
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
next.pigrb_leg.scale = Vec3::one() / 11.0;
|
||||||
|
|
||||||
|
@ -7,7 +7,11 @@ use crate::{
|
|||||||
Direction, GlobalState, PlayState, PlayStateResult,
|
Direction, GlobalState, PlayState, PlayStateResult,
|
||||||
};
|
};
|
||||||
use client::{self, Client};
|
use client::{self, Client};
|
||||||
use common::{clock::Clock, msg::ClientMsg};
|
use common::{
|
||||||
|
comp,
|
||||||
|
clock::Clock,
|
||||||
|
msg::ClientMsg,
|
||||||
|
};
|
||||||
use scene::Scene;
|
use scene::Scene;
|
||||||
use std::{cell::RefCell, rc::Rc, time::Duration};
|
use std::{cell::RefCell, rc::Rc, time::Duration};
|
||||||
use ui::CharSelectionUi;
|
use ui::CharSelectionUi;
|
||||||
@ -78,7 +82,7 @@ impl PlayState for CharSelectionState {
|
|||||||
.postbox
|
.postbox
|
||||||
.send_message(ClientMsg::Character {
|
.send_message(ClientMsg::Character {
|
||||||
name: self.char_selection_ui.character_name.clone(),
|
name: self.char_selection_ui.character_name.clone(),
|
||||||
body: self.char_selection_ui.character_body,
|
body: comp::Body::Quadruped(comp::QuadrupedBody::random()), // comp::Body::Humanoid(self.char_selection_ui.character_body),
|
||||||
});
|
});
|
||||||
return PlayStateResult::Switch(Box::new(SessionState::new(
|
return PlayStateResult::Switch(Box::new(SessionState::new(
|
||||||
&mut global_state.window,
|
&mut global_state.window,
|
||||||
|
@ -42,7 +42,7 @@ impl World {
|
|||||||
|
|
||||||
let chaos_freq = 1.0 / 100.0;
|
let chaos_freq = 1.0 / 100.0;
|
||||||
let freq = 1.0 / 128.0;
|
let freq = 1.0 / 128.0;
|
||||||
let ampl = 32.0;
|
let ampl = 75.0;
|
||||||
let small_freq = 1.0 / 32.0;
|
let small_freq = 1.0 / 32.0;
|
||||||
let small_ampl = 6.0;
|
let small_ampl = 6.0;
|
||||||
let offs = 32.0;
|
let offs = 32.0;
|
||||||
@ -55,7 +55,7 @@ impl World {
|
|||||||
let height = perlin_nz.get(Vec2::from(wposf * freq).into_array()) * ampl * chaos
|
let height = perlin_nz.get(Vec2::from(wposf * freq).into_array()) * ampl * chaos
|
||||||
+ perlin_nz.get((wposf * small_freq).into_array())
|
+ perlin_nz.get((wposf * small_freq).into_array())
|
||||||
* small_ampl
|
* small_ampl
|
||||||
* 2.0
|
* 3.0
|
||||||
* chaos.powf(2.0)
|
* chaos.powf(2.0)
|
||||||
+ offs;
|
+ offs;
|
||||||
let temp = (temp_nz.get(Vec2::from(wposf * (1.0 / 64.0)).into_array()) + 1.0) * 0.5;
|
let temp = (temp_nz.get(Vec2::from(wposf * (1.0 / 64.0)).into_array()) + 1.0) * 0.5;
|
||||||
|
Loading…
Reference in New Issue
Block a user