mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
dance dance
This commit is contained in:
parent
ac68f0af7b
commit
6a4a6bab9f
@ -88,7 +88,7 @@ impl<'a> System<'a> for Sys {
|
|||||||
.filter(|(_, pos, _, _)| in_portal_range(pos.0, teleporter_pos.0))
|
.filter(|(_, pos, _, _)| in_portal_range(pos.0, teleporter_pos.0))
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
if !matches!(character_state, CharacterState::Sit)
|
if !matches!(character_state, CharacterState::Dance)
|
||||||
|| (teleporter.requires_no_aggro && check_aggro(entity, pos.0))
|
|| (teleporter.requires_no_aggro && check_aggro(entity, pos.0))
|
||||||
{
|
{
|
||||||
if teleporting.is_some() {
|
if teleporting.is_some() {
|
||||||
|
@ -2233,8 +2233,9 @@ impl Hud {
|
|||||||
.map_or(Vec3::zero(), |e| e.0);
|
.map_or(Vec3::zero(), |e| e.0);
|
||||||
let over_pos = pos + Vec3::unit_z() * 1.5;
|
let over_pos = pos + Vec3::unit_z() * 1.5;
|
||||||
|
|
||||||
|
let is_campfire = body.is_campfire();
|
||||||
overitem::Overitem::new(
|
overitem::Overitem::new(
|
||||||
i18n.get_msg(if body.is_campfire() {
|
i18n.get_msg(if is_campfire {
|
||||||
"hud-crafting-campfire"
|
"hud-crafting-campfire"
|
||||||
} else {
|
} else {
|
||||||
"hud-portal"
|
"hud-portal"
|
||||||
@ -2249,7 +2250,7 @@ impl Hud {
|
|||||||
&global_state.window.key_layout,
|
&global_state.window.key_layout,
|
||||||
vec![(
|
vec![(
|
||||||
Some(GameInput::Interact),
|
Some(GameInput::Interact),
|
||||||
i18n.get_msg("hud-sit").to_string(),
|
i18n.get_msg(if is_campfire { "hud-sit" } else { "gameinput-dance" }).to_string(),
|
||||||
)],
|
)],
|
||||||
)
|
)
|
||||||
.x_y(0.0, 100.0)
|
.x_y(0.0, 100.0)
|
||||||
|
@ -1035,15 +1035,25 @@ impl PlayState for SessionState {
|
|||||||
.is_some()
|
.is_some()
|
||||||
{
|
{
|
||||||
client.pick_up(*entity);
|
client.pick_up(*entity);
|
||||||
} else if client
|
} else if let Some(is_campfire) = {
|
||||||
.state()
|
let bodies = client
|
||||||
.ecs()
|
.state()
|
||||||
.read_storage::<comp::Body>()
|
.ecs()
|
||||||
.get(*entity)
|
.read_storage::<comp::Body>();
|
||||||
.map_or(false, |b| b.is_campfire())
|
|
||||||
{
|
bodies
|
||||||
// TODO: maybe start crafting instead?
|
.get(*entity)
|
||||||
client.toggle_sit();
|
.filter(|body| {
|
||||||
|
body.is_campfire() || body.is_portal()
|
||||||
|
})
|
||||||
|
.map(|body| body.is_campfire())
|
||||||
|
} {
|
||||||
|
if is_campfire {
|
||||||
|
// TODO: maybe start crafting instead?
|
||||||
|
client.toggle_sit();
|
||||||
|
} else {
|
||||||
|
client.toggle_dance();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
client.npc_interact(*entity, Subject::Regular);
|
client.npc_interact(*entity, Subject::Regular);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user