#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SlotLayout {
pub x: f32,
pub y: f32,
}
#[derive(Debug, Clone)]
pub struct InventoryDef {
pub id: String,
pub slot_count: usize,
pub layout: Vec<SlotLayout>,
pub include_player_inventory: bool,
pub player_inv_offset: (f32, f32),
pub background_texture: Option<String>,
pub title: String,
}
impl InventoryDef {
pub fn new(id: impl Into<String>, slot_count: usize) -> Self {
Self {
id: id.into(),
slot_count,
layout: Vec::new(),
include_player_inventory: true,
player_inv_offset: (8.0, 84.0),
background_texture: None,
title: String::new(),
}
}
pub fn layout(mut self, layout: Vec<SlotLayout>) -> Self {
self.layout = layout;
self
}
pub fn include_player_inventory(mut self, v: bool) -> Self {
self.include_player_inventory = v;
self
}
pub fn player_inv_offset(mut self, x: f32, y: f32) -> Self {
self.player_inv_offset = (x, y);
self
}
pub fn background_texture(mut self, path: impl Into<String>) -> Self {
self.background_texture = Some(path.into());
self
}
pub fn title(mut self, title: impl Into<String>) -> Self {
self.title = title.into();
self
}
}