Add new components for dynamically created particle effects
This commit is contained in:
parent
e001488aa8
commit
1cbb70f294
@ -3,7 +3,7 @@ mod tags;
|
|||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use ::rltk::{Point, RGB};
|
use ::rltk::{FontCharType, Point, RGB};
|
||||||
use ::serde::{Deserialize, Serialize};
|
use ::serde::{Deserialize, Serialize};
|
||||||
use ::specs::error::NoError;
|
use ::specs::error::NoError;
|
||||||
use ::specs::prelude::*;
|
use ::specs::prelude::*;
|
||||||
@ -366,6 +366,20 @@ pub struct IdentifiedItem {
|
|||||||
pub name: String,
|
pub name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Serialize, Deserialize, Clone)]
|
||||||
|
pub struct SpawnParticleLine {
|
||||||
|
pub glyph: FontCharType,
|
||||||
|
pub color: RGB,
|
||||||
|
pub lifetime_ms: f32,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Serialize, Deserialize, Clone)]
|
||||||
|
pub struct SpawnParticleBurst {
|
||||||
|
pub glyph: FontCharType,
|
||||||
|
pub color: RGB,
|
||||||
|
pub lifetime_ms: f32,
|
||||||
|
}
|
||||||
|
|
||||||
// Serialization helper code. We need to implement ConvertSaveLoad for each type that contains an
|
// Serialization helper code. We need to implement ConvertSaveLoad for each type that contains an
|
||||||
// Entity.
|
// Entity.
|
||||||
|
|
||||||
|
@ -103,7 +103,8 @@ fn init_state() -> State {
|
|||||||
SimpleMarker<SerializeMe>,
|
SimpleMarker<SerializeMe>,
|
||||||
SingleActivation,
|
SingleActivation,
|
||||||
Skills,
|
Skills,
|
||||||
SufferDamage,
|
SpawnParticleBurst,
|
||||||
|
SpawnParticleLine,
|
||||||
TeleportTo,
|
TeleportTo,
|
||||||
TownPortal,
|
TownPortal,
|
||||||
Vendor,
|
Vendor,
|
||||||
|
@ -416,6 +416,7 @@ impl TownBuilder {
|
|||||||
// Place items
|
// Place items
|
||||||
let mut to_place: Vec<&str> = vec![
|
let mut to_place: Vec<&str> = vec![
|
||||||
"Priest",
|
"Priest",
|
||||||
|
"Altar",
|
||||||
"Parishioner",
|
"Parishioner",
|
||||||
"Parishioner",
|
"Parishioner",
|
||||||
"Chair",
|
"Chair",
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
use std::fs;
|
use std::fs::{self, File};
|
||||||
use std::fs::File;
|
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use ::rltk::Point;
|
use ::rltk::Point;
|
||||||
@ -16,13 +15,13 @@ use crate::spatial;
|
|||||||
macro_rules! serialize_individually {
|
macro_rules! serialize_individually {
|
||||||
($ecs:expr, $ser:expr, $data:expr, $( $type:ty),*,) => {
|
($ecs:expr, $ser:expr, $data:expr, $( $type:ty),*,) => {
|
||||||
$(
|
$(
|
||||||
SerializeComponents::<NoError, SimpleMarker<SerializeMe>>::serialize(
|
SerializeComponents::<NoError, SimpleMarker<SerializeMe>>::serialize(
|
||||||
&( $ecs.read_storage::<$type>(), ),
|
&( $ecs.read_storage::<$type>(), ),
|
||||||
&$data.0,
|
&$data.0,
|
||||||
&$data.1,
|
&$data.1,
|
||||||
&mut $ser,
|
&mut $ser,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
)*
|
)*
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -108,7 +107,8 @@ pub fn save_game(ecs: &mut World) {
|
|||||||
SerializationHelper,
|
SerializationHelper,
|
||||||
SingleActivation,
|
SingleActivation,
|
||||||
Skills,
|
Skills,
|
||||||
SufferDamage,
|
SpawnParticleBurst,
|
||||||
|
SpawnParticleLine,
|
||||||
TeleportTo,
|
TeleportTo,
|
||||||
TownPortal,
|
TownPortal,
|
||||||
Vendor,
|
Vendor,
|
||||||
@ -138,14 +138,14 @@ pub fn does_save_exist() -> bool {
|
|||||||
macro_rules! deserialize_individually {
|
macro_rules! deserialize_individually {
|
||||||
($ecs:expr, $de:expr, $data:expr, $( $type:ty),*,) => {
|
($ecs:expr, $de:expr, $data:expr, $( $type:ty),*,) => {
|
||||||
$(
|
$(
|
||||||
DeserializeComponents::<NoError, _>::deserialize(
|
DeserializeComponents::<NoError, _>::deserialize(
|
||||||
&mut ( &mut $ecs.write_storage::<$type>(), ),
|
&mut ( &mut $ecs.write_storage::<$type>(), ),
|
||||||
&$data.0, // entities
|
&$data.0, // entities
|
||||||
&mut $data.1, // marker
|
&mut $data.1, // marker
|
||||||
&mut $data.2, // allocater
|
&mut $data.2, // allocater
|
||||||
&mut $de,
|
&mut $de,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
)*
|
)*
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -224,7 +224,8 @@ pub fn load_game(ecs: &mut World) {
|
|||||||
SerializationHelper,
|
SerializationHelper,
|
||||||
SingleActivation,
|
SingleActivation,
|
||||||
Skills,
|
Skills,
|
||||||
SufferDamage,
|
SpawnParticleBurst,
|
||||||
|
SpawnParticleLine,
|
||||||
TeleportTo,
|
TeleportTo,
|
||||||
TownPortal,
|
TownPortal,
|
||||||
Vendor,
|
Vendor,
|
||||||
|
Loading…
Reference in New Issue
Block a user