summaryrefslogtreecommitdiff
path: root/src/content/materials
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2026-08-26 23:54:09 -0700
committerKai Stevenson <kai@kaistevenson.com>2026-08-26 23:54:09 -0700
commita272aa9d9b2c642871abe2dc3379e6ffcce8bf56 (patch)
tree0d9bc97a916e7df97281cc4d81cc0c292540517c /src/content/materials
parent893502300c0206cf629ff4e9ed5b9327743ebd30 (diff)
sprite loader
Diffstat (limited to 'src/content/materials')
-rw-r--r--src/content/materials/mod.rs21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/content/materials/mod.rs b/src/content/materials/mod.rs
index 8116565..819ec2a 100644
--- a/src/content/materials/mod.rs
+++ b/src/content/materials/mod.rs
@@ -1,3 +1,5 @@
+use serde::Deserialize;
+
use crate::sim::cell_manager::sim::{PostUpdateAction, UpdateCtx};
pub mod fire;
@@ -6,7 +8,7 @@ pub mod liquid;
pub mod powder;
#[repr(u8)]
-#[derive(Clone, Copy, PartialEq, Eq, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, Debug, Deserialize)]
pub enum MaterialId {
Void = 0,
Sand,
@@ -15,6 +17,7 @@ pub enum MaterialId {
Fire,
Smoke,
Steel,
+ Tnt,
}
#[repr(u8)]
@@ -35,7 +38,7 @@ pub struct MaterialDef {
pub sim_update: Option<fn(ctx: &mut UpdateCtx) -> PostUpdateAction>,
}
-static MATERIALS: [MaterialDef; 7] = [
+static MATERIALS: [MaterialDef; 8] = [
MaterialDef {
name: "Void",
color: (0x00, 0x00, 0x00, 0x00),
@@ -53,8 +56,8 @@ static MATERIALS: [MaterialDef; 7] = [
},
MaterialDef {
name: "Wood",
- color: (0x85, 0x56, 0x1D, 0xFF),
- density: 50,
+ color: (0x66, 0x39, 0x31, 0xFF),
+ density: 60,
form: MaterialForm::Solid,
sim_update: None,
},
@@ -88,10 +91,17 @@ static MATERIALS: [MaterialDef; 7] = [
form: MaterialForm::Solid,
sim_update: None,
},
+ MaterialDef {
+ name: "TNT",
+ color: (0xA6, 0x34, 0x23, 0xFF),
+ density: 55,
+ form: MaterialForm::Solid,
+ sim_update: None,
+ },
];
impl MaterialId {
- pub const ALL: [MaterialId; 7] = [
+ pub const ALL: [MaterialId; 8] = [
MaterialId::Void,
MaterialId::Sand,
MaterialId::Wood,
@@ -99,6 +109,7 @@ impl MaterialId {
MaterialId::Fire,
MaterialId::Smoke,
MaterialId::Steel,
+ MaterialId::Tnt,
];
#[inline]
pub fn def(self) -> &'static MaterialDef {