mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
lights
This commit is contained in:
parent
91ed3c6a84
commit
df8db713ea
@ -28,7 +28,7 @@ pub(crate) use self::{
|
|||||||
use crate::{
|
use crate::{
|
||||||
all::{Environment, ForestKind, TreeAttr},
|
all::{Environment, ForestKind, TreeAttr},
|
||||||
block::BlockGen,
|
block::BlockGen,
|
||||||
civ::{Place, PointOfInterest, self},
|
civ::{Place, PointOfInterest},
|
||||||
column::ColumnGen,
|
column::ColumnGen,
|
||||||
layer::spot::Spot,
|
layer::spot::Spot,
|
||||||
site::Site,
|
site::Site,
|
||||||
|
@ -296,8 +296,8 @@ fn render_heightened_viaduct(bridge: &Bridge, painter: &Painter, data: &Heighten
|
|||||||
)))
|
)))
|
||||||
};
|
};
|
||||||
|
|
||||||
let b = bridge_prim(bridge_width - 1);
|
let br = bridge_prim(bridge_width - 1);
|
||||||
let b = b.without(b.translate(-Vec3::unit_z()));
|
let b = br.without(br.translate(-Vec3::unit_z()));
|
||||||
|
|
||||||
let c = bridge_aabr.center();
|
let c = bridge_aabr.center();
|
||||||
let len = bridge.dir.select(bridge_aabr.size());
|
let len = bridge.dir.select(bridge_aabr.size());
|
||||||
@ -356,14 +356,35 @@ fn render_heightened_viaduct(bridge: &Bridge, painter: &Painter, data: &Heighten
|
|||||||
}
|
}
|
||||||
|
|
||||||
bridge_prim(bridge_width)
|
bridge_prim(bridge_width)
|
||||||
.without(b)
|
|
||||||
.without(remove)
|
.without(remove)
|
||||||
.fill(rock.clone());
|
.fill(rock.clone());
|
||||||
b.translate(-Vec3::unit_z()).fill(light_rock.clone());
|
b.translate(-Vec3::unit_z()).fill(light_rock.clone());
|
||||||
|
|
||||||
b.translate(Vec3::unit_z() * 5)
|
br.translate(Vec3::unit_z() * 5)
|
||||||
.without(b.translate(-Vec3::unit_z()))
|
.without(br.translate(-Vec3::unit_z()))
|
||||||
.clear();
|
.clear();
|
||||||
|
|
||||||
|
|
||||||
|
let place_lights = |center: Vec3<i32>| {
|
||||||
|
painter.sprite(orth_dir.select_aabr_with(bridge_aabr, center.xy()).with_z(center.z), SpriteKind::FireBowlGround);
|
||||||
|
painter.sprite((-orth_dir).select_aabr_with(bridge_aabr, center.xy()).with_z(center.z), SpriteKind::FireBowlGround);
|
||||||
|
};
|
||||||
|
|
||||||
|
place_lights(bridge_aabr.center().with_z(bridge_top + 1));
|
||||||
|
|
||||||
|
let light_spacing = 1;
|
||||||
|
let num_lights = (len - 1) / 2 / light_spacing;
|
||||||
|
|
||||||
|
let place_lights = |i: i32| {
|
||||||
|
let offset = i * light_spacing;
|
||||||
|
let z = bridge_start_z + 1 + (offset + if len / 2 % 2 == 0 { 4 } else { 3 }) / (slope_inv - 1);
|
||||||
|
|
||||||
|
place_lights((bridge.dir.select_aabr_with(bridge_aabr, bridge_aabr.center()) - forward * offset).with_z(z));
|
||||||
|
place_lights(((-bridge.dir).select_aabr_with(bridge_aabr, bridge_aabr.center()) + forward * offset).with_z(z));
|
||||||
|
};
|
||||||
|
for i in 0..num_lights {
|
||||||
|
place_lights(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_tower(bridge: &Bridge, painter: &Painter, roof_kind: &RoofKind) {
|
fn render_tower(bridge: &Bridge, painter: &Painter, roof_kind: &RoofKind) {
|
||||||
|
Loading…
Reference in New Issue
Block a user