mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Added bomb sprites
This commit is contained in:
parent
dbfbdcdacd
commit
edf9c59e7d
@ -3411,7 +3411,7 @@ WitchWindow: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.window.witch_purple",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.5),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
@ -3453,27 +3453,27 @@ CavernGrassBlueShort: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_short-0",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_short-1",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_short-2",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_short-3",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_short-4",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
@ -3484,22 +3484,22 @@ CavernGrassBlueMedium: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_med-0",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_med-1",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_med-2",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_med-3",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
@ -3510,42 +3510,42 @@ CavernGrassBlueLong: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-0",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-1",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-2",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-3",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-4",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-5",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-6",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.grass_long-7",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
@ -3556,27 +3556,27 @@ CavernLillypadBlue: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.lillypad-0",
|
||||
offset: (-5.5, -5.5, -1.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.lillypad-1",
|
||||
offset: (-5.5, -5.5, -1.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.lillypad-2",
|
||||
offset: (-5.5, -5.5, -1.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.lillypad-3",
|
||||
offset: (-5.5, -5.5, -1.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.lillypad-4",
|
||||
offset: (-5.5, -5.5, -1.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
@ -3587,22 +3587,22 @@ CavernMycelBlue: Some((
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.mycel-0",
|
||||
offset: (-0.5, -0.5, -21.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.mycel-1",
|
||||
offset: (-0.5, -0.5, -31.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.mycel-2",
|
||||
offset: (-0.5, -0.5, -14.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
(
|
||||
model: "voxygen.voxel.sprite.cavern.mycel-3",
|
||||
offset: (-0.5, -0.5, -40.0),
|
||||
lod_axes: (0.0, 0.0, 0.0),
|
||||
lod_axes: (0.0, 0.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.1,
|
||||
@ -3657,5 +3657,14 @@ LillyPads: Some((
|
||||
),
|
||||
],
|
||||
wind_sway: 0.6,
|
||||
Bomb: Some((
|
||||
variations: [
|
||||
(
|
||||
model: "voxygen.voxel.object.bomb",
|
||||
offset: (-5.5, -5.5, 0.0),
|
||||
lod_axes: (0.5, 0.5, 0.5),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
)),
|
||||
)
|
||||
|
@ -156,7 +156,8 @@ impl From<SpriteKind> for Option<SpriteInteractKind> {
|
||||
| SpriteKind::VialEmpty
|
||||
| SpriteKind::Bowl
|
||||
| SpriteKind::PotionMinor
|
||||
| SpriteKind::Seashells => Some(SpriteInteractKind::Collectible),
|
||||
| SpriteKind::Seashells
|
||||
| SpriteKind::Bomb => Some(SpriteInteractKind::Collectible),
|
||||
// Collectible checked in addition to container for case that sprite requires a tool to
|
||||
// collect and cannot be collected by hand, yet still meets the container check
|
||||
_ if sprite_kind.is_container() && sprite_kind.is_collectible() => {
|
||||
|
@ -279,7 +279,9 @@ impl Block {
|
||||
#[inline]
|
||||
pub fn is_bonkable(&self) -> bool {
|
||||
match self.get_sprite() {
|
||||
Some(SpriteKind::Apple | SpriteKind::Beehive | SpriteKind::Coconut) => self.is_solid(),
|
||||
Some(
|
||||
SpriteKind::Apple | SpriteKind::Beehive | SpriteKind::Coconut | SpriteKind::Bomb,
|
||||
) => self.is_solid(),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
@ -187,6 +187,7 @@ make_case_elim!(
|
||||
LillyPads = 0xA0,
|
||||
JungleLeafyPlant = 0xA1,
|
||||
JungleRedGrass = 0xA2,
|
||||
Bomb = 0xA3,
|
||||
}
|
||||
);
|
||||
|
||||
@ -261,7 +262,8 @@ impl SpriteKind {
|
||||
| SpriteKind::Window3
|
||||
| SpriteKind::Window4
|
||||
| SpriteKind::DropGate
|
||||
| SpriteKind::WitchWindow => 1.0,
|
||||
| SpriteKind::WitchWindow
|
||||
| SpriteKind::Bomb => 1.0,
|
||||
// TODO: Figure out if this should be solid or not.
|
||||
SpriteKind::Shelf => 1.0,
|
||||
SpriteKind::Lantern => 0.9,
|
||||
@ -335,6 +337,7 @@ impl SpriteKind {
|
||||
SpriteKind::RoundCactus => item("common.items.crafting_ing.cactus"),
|
||||
SpriteKind::ShortFlatCactus => item("common.items.crafting_ing.cactus"),
|
||||
SpriteKind::MedFlatCactus => item("common.items.crafting_ing.cactus"),
|
||||
SpriteKind::Bomb => item("common.items.utility.bomb"),
|
||||
SpriteKind::DungeonChest0 => table("common.loot_tables.dungeon.tier-0.chest"),
|
||||
SpriteKind::DungeonChest1 => table("common.loot_tables.dungeon.tier-1.chest"),
|
||||
SpriteKind::DungeonChest2 => table("common.loot_tables.dungeon.tier-2.chest"),
|
||||
|
@ -866,7 +866,7 @@ pub fn handle_explosion(server: &Server, pos: Vec3<f32>, explosion: Explosion, o
|
||||
}
|
||||
}
|
||||
|
||||
pub fn handle_bonk(server: &mut Server, pos: Vec3<f32>, _owner: Option<Uid>, target: Option<Uid>) {
|
||||
pub fn handle_bonk(server: &mut Server, pos: Vec3<f32>, owner: Option<Uid>, target: Option<Uid>) {
|
||||
let ecs = &server.state.ecs();
|
||||
let terrain = ecs.read_resource::<TerrainGrid>();
|
||||
let mut block_change = ecs.write_resource::<BlockChange>();
|
||||
@ -884,18 +884,25 @@ pub fn handle_bonk(server: &mut Server, pos: Vec3<f32>, _owner: Option<Uid>, tar
|
||||
{
|
||||
drop(terrain);
|
||||
drop(block_change);
|
||||
server
|
||||
let mut entity = server
|
||||
.state
|
||||
.create_object(Default::default(), match block.get_sprite() {
|
||||
// Create different containers depending on the original sprite
|
||||
Some(SpriteKind::Apple) => comp::object::Body::Apple,
|
||||
Some(SpriteKind::Beehive) => comp::object::Body::Hive,
|
||||
Some(SpriteKind::Coconut) => comp::object::Body::Coconut,
|
||||
Some(SpriteKind::Bomb) => comp::object::Body::Bomb,
|
||||
_ => comp::object::Body::Pouch,
|
||||
})
|
||||
.with(comp::Pos(pos.map(|e| e as f32) + Vec3::new(0.5, 0.5, 0.0)))
|
||||
.with(item)
|
||||
.build();
|
||||
.with(item);
|
||||
|
||||
entity = match block.get_sprite() {
|
||||
Some(SpriteKind::Bomb) => entity.with(comp::Object::Bomb { owner }),
|
||||
_ => entity,
|
||||
};
|
||||
|
||||
entity.build();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user