mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
street lamp particles, ground fire bowl, misc fixes
This commit is contained in:
parent
8885efd702
commit
d069eb9a57
@ -54,6 +54,7 @@ const int HEALING_BEAM = 13;
|
||||
const int ENERGY_NATURE = 14;
|
||||
const int FLAMETHROWER = 15;
|
||||
const int FIRE_SHOCKWAVE = 16;
|
||||
const int FIRE_BOWL = 17;
|
||||
|
||||
// meters per second squared (acceleration)
|
||||
const float earth_gravity = 9.807;
|
||||
@ -163,6 +164,17 @@ void main() {
|
||||
vec4(2, 1.5 + rand5 * 0.5, 0, start_end(1.0, 0.0)),
|
||||
spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3)
|
||||
);
|
||||
} else if (inst_mode == FIRE_BOWL) {
|
||||
f_reflect = 0.0; // Fire doesn't reflect light, it emits it
|
||||
attr = Attr(
|
||||
linear_motion(
|
||||
vec3(normalize(vec2(rand0, rand1)) * 0.1, 0.6),
|
||||
vec3(rand2 * 0.2, rand3 * 0.5, 0.8 + rand4 * 0.5)
|
||||
),
|
||||
vec3(0.2), // Size
|
||||
vec4(2, 1.5 + rand5 * 0.5, 0, start_end(1.0, 0.0)), // Colour
|
||||
spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3)
|
||||
);
|
||||
} else if (inst_mode == GUN_POWDER_SPARK) {
|
||||
attr = Attr(
|
||||
linear_motion(
|
||||
|
BIN
assets/voxygen/voxel/sprite/misc/lantern_ground_open.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/sprite/misc/lantern_ground_open.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/sprite/misc/street_lamp.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/sprite/misc/street_lamp.vox
(Stored with Git LFS)
Binary file not shown.
@ -2005,6 +2005,17 @@ PotionMinor: Some((
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
)),
|
||||
// Ground Fire Bowls
|
||||
FireBowlGround: Some((
|
||||
variations: [
|
||||
(
|
||||
model: "voxygen.voxel.sprite.misc.lantern_ground_open",
|
||||
offset: (-3.5, -3.5, 0.0),
|
||||
lod_axes: (1.0, 1.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
)),
|
||||
// Underwater Grass
|
||||
GrassBlue: Some((
|
||||
variations: [
|
||||
|
@ -147,7 +147,7 @@
|
||||
plot_dirt: (90, 70, 50),
|
||||
plot_grass: (100, 200, 0),
|
||||
plot_water: (100, 150, 250),
|
||||
plot_town: (150, 110, 60),
|
||||
plot_town: (90, 70, 50),
|
||||
// TODO: Add field furrow stuff.
|
||||
),
|
||||
),
|
||||
|
@ -404,9 +404,7 @@ impl LoadoutBuilder {
|
||||
back: None,
|
||||
ring: None,
|
||||
neck: None,
|
||||
lantern: Some(Item::new_from_asset_expect(
|
||||
"common.items.lantern.black_0",
|
||||
)),
|
||||
lantern: None,
|
||||
glider: None,
|
||||
head: None,
|
||||
tabard: None,
|
||||
|
@ -107,6 +107,7 @@ make_case_elim!(
|
||||
GrassBlue = 0x51,
|
||||
ChestBurried = 0x52,
|
||||
Mud = 0x53,
|
||||
FireBowlGround = 0x54,
|
||||
}
|
||||
);
|
||||
|
||||
@ -125,6 +126,7 @@ impl SpriteKind {
|
||||
SpriteKind::StreetLamp => 2.65,
|
||||
SpriteKind::Carrot => 0.18,
|
||||
SpriteKind::Radish => 0.18,
|
||||
SpriteKind::FireBowlGround => 0.55,
|
||||
// TODO: Uncomment this when we have a way to open doors
|
||||
// SpriteKind::Door => 3.0,
|
||||
SpriteKind::Bed => 1.54,
|
||||
@ -234,6 +236,7 @@ impl SpriteKind {
|
||||
| SpriteKind::Beehive
|
||||
| SpriteKind::PotionMinor
|
||||
| SpriteKind::VialEmpty
|
||||
| SpriteKind::FireBowlGround
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -369,11 +369,11 @@ impl<'a> Widget for MiniMap<'a> {
|
||||
let name_len = chunk.meta().name().chars().count();
|
||||
Text::new(chunk.meta().name())
|
||||
.mid_top_with_margin_on(state.ids.mmap_frame, match name_len {
|
||||
16..=30 => 4.0,
|
||||
15..=30 => 4.0,
|
||||
_ => 2.0,
|
||||
})
|
||||
.font_size(self.fonts.cyri.scale(match name_len {
|
||||
0..=16 => 18,
|
||||
0..=15 => 18,
|
||||
16..=30 => 14,
|
||||
_ => 14,
|
||||
}))
|
||||
|
@ -113,6 +113,7 @@ pub enum ParticleMode {
|
||||
EnergyNature = 14,
|
||||
FlameThrower = 15,
|
||||
FireShockwave = 16,
|
||||
FireBowl = 17,
|
||||
}
|
||||
|
||||
impl ParticleMode {
|
||||
|
@ -484,6 +484,14 @@ impl ParticleMgr {
|
||||
mode: ParticleMode::CampfireFire,
|
||||
cond: |_| true,
|
||||
},
|
||||
BlockParticles {
|
||||
blocks: |boi| &boi.fire_bowls,
|
||||
range: 2,
|
||||
rate: 20.0,
|
||||
lifetime: 0.25,
|
||||
mode: ParticleMode::FireBowl,
|
||||
cond: |_| true,
|
||||
},
|
||||
BlockParticles {
|
||||
blocks: |boi| &boi.smokers,
|
||||
range: 8,
|
||||
|
@ -15,12 +15,15 @@ pub struct BlocksOfInterest {
|
||||
pub beehives: Vec<Vec3<i32>>,
|
||||
pub reeds: Vec<Vec3<i32>>,
|
||||
pub flowers: Vec<Vec3<i32>>,
|
||||
pub fire_bowls: Vec<Vec3<i32>>,
|
||||
// Note: these are only needed for chunks within the iteraction range so this is a potential
|
||||
// area for optimization
|
||||
pub interactables: Vec<Vec3<i32>>,
|
||||
pub lights: Vec<(Vec3<i32>, u8)>,
|
||||
}
|
||||
|
||||
use inline_tweak::*;
|
||||
|
||||
impl BlocksOfInterest {
|
||||
pub fn from_chunk(chunk: &TerrainChunk) -> Self {
|
||||
span!(_guard, "from_chunk", "BlocksOfInterest::from_chunk");
|
||||
@ -34,6 +37,7 @@ impl BlocksOfInterest {
|
||||
let mut flowers = Vec::new();
|
||||
let mut interactables = Vec::new();
|
||||
let mut lights = Vec::new();
|
||||
let mut fire_bowls = Vec::new();
|
||||
|
||||
chunk
|
||||
.vol_iter(
|
||||
@ -68,8 +72,9 @@ impl BlocksOfInterest {
|
||||
},
|
||||
// Offset positions to account for block height.
|
||||
// TODO: Is this a good idea?
|
||||
Some(SpriteKind::StreetLamp) => fires.push(pos + Vec3::unit_z() * 3),
|
||||
Some(SpriteKind::StreetLampTall) => fires.push(pos + Vec3::unit_z() * 4),
|
||||
Some(SpriteKind::StreetLamp) => fire_bowls.push(pos + Vec3::unit_z() * 2),
|
||||
Some(SpriteKind::FireBowlGround) => fire_bowls.push(pos + Vec3::unit_z() * 1),
|
||||
Some(SpriteKind::StreetLampTall) => fire_bowls.push(pos + Vec3::unit_z() * 4),
|
||||
Some(SpriteKind::Beehive) => beehives.push(pos),
|
||||
Some(SpriteKind::Reed) => reeds.push(pos),
|
||||
Some(SpriteKind::PinkFlower) => flowers.push(pos),
|
||||
@ -100,6 +105,7 @@ impl BlocksOfInterest {
|
||||
flowers,
|
||||
interactables,
|
||||
lights,
|
||||
fire_bowls,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user