mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
- randomize distribution of crafting_stations to static positions
This commit is contained in:
parent
ddc35d8b7d
commit
595e6ee076
@ -1,5 +1,8 @@
|
||||
use super::*;
|
||||
use crate::Land;
|
||||
use crate::{
|
||||
util::{RandomField, Sampler},
|
||||
Land,
|
||||
};
|
||||
use common::terrain::{Block, BlockKind, SpriteKind};
|
||||
use rand::prelude::*;
|
||||
use vek::*;
|
||||
@ -108,62 +111,35 @@ impl Structure for Workshop {
|
||||
);
|
||||
}
|
||||
}
|
||||
let (
|
||||
crafting_bench_pos,
|
||||
forge_pos,
|
||||
spinning_wheel_pos,
|
||||
cauldron_pos,
|
||||
cooking_pot_pos,
|
||||
tanning_rack_pos,
|
||||
loom_pos,
|
||||
anvil_pos,
|
||||
dismantling_bench_pos,
|
||||
) = (
|
||||
Vec2::new(center.x + 3, center.y - 2).with_z(base),
|
||||
Vec2::new(center.x + 3, center.y + 2).with_z(base),
|
||||
Vec2::new(center.x - 3, center.y).with_z(base),
|
||||
Vec2::new(center.x, center.y + 3).with_z(base),
|
||||
Vec2::new(center.x, center.y - 3).with_z(base),
|
||||
Vec2::new(center.x + 6, center.y).with_z(base),
|
||||
Vec2::new(center.x - 6, center.y).with_z(base),
|
||||
Vec2::new(center.x, center.y - 6).with_z(base),
|
||||
Vec2::new(center.x, center.y + 6).with_z(base),
|
||||
);
|
||||
/*
|
||||
//painter-rng to randomize distribution
|
||||
let (
|
||||
crafting_bench_pos,
|
||||
forge_pos,
|
||||
spinning_wheel_pos,
|
||||
cauldron_pos,
|
||||
cooking_pot_pos,
|
||||
tanning_rack_pos,
|
||||
loom_pos,
|
||||
anvil_pos,
|
||||
dismantling_bench_pos,
|
||||
) = [
|
||||
Vec2::new(center.x + 3, center.y - 2).with_z(base),
|
||||
Vec2::new(center.x + 3, center.y + 2).with_z(base),
|
||||
Vec2::new(center.x - 3, center.y).with_z(base),
|
||||
Vec2::new(center.x, center.y + 3).with_z(base),
|
||||
Vec2::new(center.x, center.y - 3).with_z(base),
|
||||
Vec2::new(center.x + 6, center.y).with_z(base),
|
||||
Vec2::new(center.x - 6, center.y).with_z(base),
|
||||
Vec2::new(center.x, center.y - 6).with_z(base),
|
||||
Vec2::new(center.x, center.y + 6).with_z(base),
|
||||
]
|
||||
.choose_multiple(&mut rng, 9)
|
||||
.collect_tuple()
|
||||
.unwrap();
|
||||
*/
|
||||
painter.sprite(crafting_bench_pos, SpriteKind::CraftingBench);
|
||||
painter.sprite(forge_pos, SpriteKind::Forge);
|
||||
painter.sprite(spinning_wheel_pos, SpriteKind::SpinningWheel);
|
||||
painter.sprite(tanning_rack_pos, SpriteKind::TanningRack);
|
||||
painter.sprite(cooking_pot_pos, SpriteKind::CookingPot);
|
||||
painter.sprite(cauldron_pos, SpriteKind::Cauldron);
|
||||
painter.sprite(loom_pos, SpriteKind::Loom);
|
||||
painter.sprite(anvil_pos, SpriteKind::Anvil);
|
||||
painter.sprite(dismantling_bench_pos, SpriteKind::DismantlingBench);
|
||||
let positions = [
|
||||
Vec2::new(center.x + 3, center.y - 2),
|
||||
Vec2::new(center.x + 3, center.y + 2),
|
||||
Vec2::new(center.x - 3, center.y),
|
||||
Vec2::new(center.x, center.y + 3),
|
||||
Vec2::new(center.x, center.y - 3),
|
||||
Vec2::new(center.x + 6, center.y),
|
||||
Vec2::new(center.x - 6, center.y),
|
||||
Vec2::new(center.x, center.y - 6),
|
||||
Vec2::new(center.x, center.y + 6),
|
||||
];
|
||||
let mut stations = vec![
|
||||
SpriteKind::CraftingBench,
|
||||
SpriteKind::Forge,
|
||||
SpriteKind::SpinningWheel,
|
||||
SpriteKind::TanningRack,
|
||||
SpriteKind::CookingPot,
|
||||
SpriteKind::Cauldron,
|
||||
SpriteKind::Loom,
|
||||
SpriteKind::Anvil,
|
||||
SpriteKind::DismantlingBench,
|
||||
];
|
||||
if stations.len() == positions.len() {
|
||||
for position in positions {
|
||||
let cr_station = stations.swap_remove(
|
||||
RandomField::new(0).get(position.with_z(base)) as usize % stations.len(),
|
||||
);
|
||||
painter.sprite(position.with_z(base), cr_station);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user