pub struct Material { pub renderable: bool, pub should_cull_against: bool, pub never_cull: bool, // Because leaves suck pub force_shade: bool, pub transparent: bool, pub absorbed_light: u8, pub emitted_light: u8, pub collidable: bool, } pub const INVISIBLE: Material = Material { renderable: false, never_cull: false, should_cull_against: false, force_shade: false, transparent: false, absorbed_light: 0, // Special because of sky light emitted_light: 0, collidable: true, }; pub const SOLID: Material = Material { renderable: true, never_cull: false, should_cull_against: true, force_shade: false, transparent: false, absorbed_light: 15, emitted_light: 0, collidable: true, }; pub const NON_SOLID: Material = Material { should_cull_against: false, absorbed_light: 1, ..SOLID }; pub const TRANSPARENT: Material = Material { transparent: true, ..NON_SOLID }; pub const LEAVES: Material = Material { never_cull: true, force_shade: true, ..NON_SOLID };