refactor(vm): update prefab database with new data
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -14,27 +14,45 @@ pub enum ObjectTemplate {
|
||||
StructureSlots(StructureSlotsTemplate),
|
||||
StructureLogic(StructureLogicTemplate),
|
||||
StructureLogicDevice(StructureLogicDeviceTemplate),
|
||||
StructureLogicDeviceConsumer(StructureLogicDeviceConsumerTemplate),
|
||||
StructureLogicDeviceMemory(StructureLogicDeviceMemoryTemplate),
|
||||
StructureLogicDeviceConsumerMemory(StructureLogicDeviceConsumerMemoryTemplate),
|
||||
StructureCircuitHolder(StructureCircuitHolderTemplate),
|
||||
Item(ItemTemplate),
|
||||
ItemSlots(ItemSlotsTemplate),
|
||||
ItemConsumer(ItemConsumerTemplate),
|
||||
ItemLogic(ItemLogicTemplate),
|
||||
ItemLogicMemory(ItemLogicMemoryTemplate),
|
||||
ItemCircuitHolder(ItemCircuitHolderTemplate),
|
||||
ItemSuit(ItemSuitTemplate),
|
||||
ItemSuitLogic(ItemSuitLogicTemplate),
|
||||
ItemSuitCircuitHolder(ItemSuitCircuitHolderTemplate),
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl ObjectTemplate {
|
||||
#[allow(clippy::must_use_candidate)]
|
||||
pub fn prefab(&self) -> &PrefabInfo {
|
||||
#[allow(clippy::enum_glob_use)]
|
||||
use ObjectTemplate::*;
|
||||
match self {
|
||||
Structure(s) => &s.prefab,
|
||||
StructureSlots(s) => &s.prefab,
|
||||
StructureLogic(s) => &s.prefab,
|
||||
StructureLogicDevice(s) => &s.prefab,
|
||||
StructureLogicDeviceConsumer(s) => &s.prefab,
|
||||
StructureLogicDeviceMemory(s) => &s.prefab,
|
||||
StructureLogicDeviceConsumerMemory(s) => &s.prefab,
|
||||
StructureCircuitHolder(s) => &s.prefab,
|
||||
Item(i) => &i.prefab,
|
||||
ItemSlots(i) => &i.prefab,
|
||||
ItemConsumer(i) => &i.prefab,
|
||||
ItemLogic(i) => &i.prefab,
|
||||
ItemLogicMemory(i) => &i.prefab,
|
||||
ItemCircuitHolder(i) => &i.prefab,
|
||||
ItemSuit(i) => &i.prefab,
|
||||
ItemSuitLogic(i) => &i.prefab,
|
||||
ItemSuitCircuitHolder(i) => &i.prefab,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,6 +80,11 @@ impl From<StructureLogicDeviceTemplate> for ObjectTemplate {
|
||||
Self::StructureLogicDevice(value)
|
||||
}
|
||||
}
|
||||
impl From<StructureLogicDeviceConsumerTemplate> for ObjectTemplate {
|
||||
fn from(value: StructureLogicDeviceConsumerTemplate) -> Self {
|
||||
Self::StructureLogicDeviceConsumer(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StructureLogicDeviceMemoryTemplate> for ObjectTemplate {
|
||||
fn from(value: StructureLogicDeviceMemoryTemplate) -> Self {
|
||||
@@ -69,6 +92,12 @@ impl From<StructureLogicDeviceMemoryTemplate> for ObjectTemplate {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StructureLogicDeviceConsumerMemoryTemplate> for ObjectTemplate {
|
||||
fn from(value: StructureLogicDeviceConsumerMemoryTemplate) -> Self {
|
||||
Self::StructureLogicDeviceConsumerMemory(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemTemplate) -> Self {
|
||||
Self::Item(value)
|
||||
@@ -81,6 +110,12 @@ impl From<ItemSlotsTemplate> for ObjectTemplate {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemConsumerTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemConsumerTemplate) -> Self {
|
||||
Self::ItemConsumer(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemLogicTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemLogicTemplate) -> Self {
|
||||
Self::ItemLogic(value)
|
||||
@@ -93,6 +128,36 @@ impl From<ItemLogicMemoryTemplate> for ObjectTemplate {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemSuitCircuitHolderTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemSuitCircuitHolderTemplate) -> Self {
|
||||
Self::ItemSuitCircuitHolder(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemSuitTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemSuitTemplate) -> Self {
|
||||
Self::ItemSuit(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemSuitLogicTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemSuitLogicTemplate) -> Self {
|
||||
Self::ItemSuitLogic(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ItemCircuitHolderTemplate> for ObjectTemplate {
|
||||
fn from(value: ItemCircuitHolderTemplate) -> Self {
|
||||
Self::ItemCircuitHolder(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StructureCircuitHolderTemplate> for ObjectTemplate {
|
||||
fn from(value: StructureCircuitHolderTemplate) -> Self {
|
||||
Self::StructureCircuitHolder(value)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Eq, Ord, Hash, Serialize, Deserialize)]
|
||||
pub struct PrefabInfo {
|
||||
pub prefab_name: String,
|
||||
@@ -133,6 +198,7 @@ pub struct ConnectionInfo {
|
||||
pub role: ConnectionRole,
|
||||
}
|
||||
|
||||
#[allow(clippy::struct_excessive_bools)]
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct DeviceInfo {
|
||||
pub connection_list: Vec<ConnectionInfo>,
|
||||
@@ -147,6 +213,12 @@ pub struct DeviceInfo {
|
||||
pub has_reagents: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ConsumerInfo {
|
||||
pub consumed_resouces: Vec<String>,
|
||||
pub processed_reagents: Vec<i32>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Eq, Ord, Hash, Serialize, Deserialize)]
|
||||
pub struct StructureInfo {
|
||||
pub small_grid: bool,
|
||||
@@ -166,16 +238,37 @@ pub struct MemoryInfo {
|
||||
pub memory_size: u32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ThermalInfo {
|
||||
pub convection_factor: f32,
|
||||
pub radiation_factor: f32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct InternalAtmoInfo {
|
||||
pub volume: f32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct SuitInfo {
|
||||
pub hygine_reduction_multiplier: f32,
|
||||
pub waste_max_pressure: f32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureSlotsTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
}
|
||||
|
||||
@@ -183,6 +276,8 @@ pub struct StructureSlotsTemplate {
|
||||
pub struct StructureLogicTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
}
|
||||
@@ -191,38 +286,94 @@ pub struct StructureLogicTemplate {
|
||||
pub struct StructureLogicDeviceTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub device: DeviceInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureLogicDeviceConsumerTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub device: DeviceInfo,
|
||||
pub consumer_info: ConsumerInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureLogicDeviceMemoryTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub device: DeviceInfo,
|
||||
pub memory: MemoryInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureCircuitHolderTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub device: DeviceInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct StructureLogicDeviceConsumerMemoryTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub structure: StructureInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub device: DeviceInfo,
|
||||
pub consumer_info: ConsumerInfo,
|
||||
pub memory: MemoryInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemSlotsTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemConsumerTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub consumer_info: ConsumerInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemLogicTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
}
|
||||
@@ -231,7 +382,52 @@ pub struct ItemLogicTemplate {
|
||||
pub struct ItemLogicMemoryTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub memory: MemoryInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemCircuitHolderTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemSuitTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub suit_info: SuitInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemSuitLogicTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub suit_info: SuitInfo,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Serialize, Deserialize)]
|
||||
pub struct ItemSuitCircuitHolderTemplate {
|
||||
pub prefab: PrefabInfo,
|
||||
pub item: ItemInfo,
|
||||
pub thermal_info: Option<ThermalInfo>,
|
||||
pub internal_atmo_info: Option<InternalAtmoInfo>,
|
||||
pub logic: LogicInfo,
|
||||
pub slots: Vec<SlotInfo>,
|
||||
pub suit_info: SuitInfo,
|
||||
pub memory: MemoryInfo,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user