diff --git a/src/Editor/LancerEdit/Model/ModelViewer.PartEditor.cs b/src/Editor/LancerEdit/Model/ModelViewer.PartEditor.cs index befbc06a..96bee0d9 100644 --- a/src/Editor/LancerEdit/Model/ModelViewer.PartEditor.cs +++ b/src/Editor/LancerEdit/Model/ModelViewer.PartEditor.cs @@ -86,7 +86,13 @@ void WriteConstructs() } void ReplaceConstruct(ConstructNode c, AbstractConstruct newc) { + var cmp = (CmpFile)drawable; + foreach(var part in cmp.Parts) + { + if (part.Construct == c.Con) + part.UpdateConstruct(newc); + } for (int i = 0; i < cmp.Constructs.Count; i++) { if (cmp.Constructs[i] == c.Con) diff --git a/src/Editor/LancerEdit/Model/ModelViewer.cs b/src/Editor/LancerEdit/Model/ModelViewer.cs index c2555e6e..c4afab6e 100644 --- a/src/Editor/LancerEdit/Model/ModelViewer.cs +++ b/src/Editor/LancerEdit/Model/ModelViewer.cs @@ -452,6 +452,7 @@ void ConstructContext(ConstructNode con) Origin = con.Con.Origin, Rotation = con.Con.Rotation }; + fix.Reset(); ReplaceConstruct(con, fix); } if(!(con.Con is RevConstruct) && Theme.IconMenuItem("Rev","rev",Color4.LightCoral,true)) { diff --git a/src/LibreLancer.Data/Effects/Effect.cs b/src/LibreLancer.Data/Effects/Effect.cs index 5bf428c6..5df9dd7f 100644 --- a/src/LibreLancer.Data/Effects/Effect.cs +++ b/src/LibreLancer.Data/Effects/Effect.cs @@ -15,6 +15,8 @@ public class Effect public string VisEffect; [Entry("vis_beam")] public string VisBeam; + [Entry("vis_generic")] + public string VisGeneric; [Entry("snd_effect")] public string SndEffect; [Entry("type")] diff --git a/src/LibreLancer.Data/Equipment/AbstractEquipment.cs b/src/LibreLancer.Data/Equipment/AbstractEquipment.cs index 28060632..0dba08b0 100644 --- a/src/LibreLancer.Data/Equipment/AbstractEquipment.cs +++ b/src/LibreLancer.Data/Equipment/AbstractEquipment.cs @@ -12,9 +12,19 @@ public abstract class AbstractEquipment { [Entry("nickname")] public string Nickname; + [Entry("da_archetype")] + public string DaArchetype; + [Entry("material_library")] + public string MaterialLibrary; [Entry("lodranges")] public float[] LODRanges; [Entry("hp_child")] public string HPChild { get; private set; } + [Entry("ids_name")] + public int IdsName = -1; + [Entry("ids_info")] + public int IdsInfo = -1; + [Entry("lootable")] + public bool Lootable; } } diff --git a/src/LibreLancer.Data/Equipment/Gun.cs b/src/LibreLancer.Data/Equipment/Gun.cs index ca94d28d..3bec8964 100644 --- a/src/LibreLancer.Data/Equipment/Gun.cs +++ b/src/LibreLancer.Data/Equipment/Gun.cs @@ -8,14 +8,6 @@ namespace LibreLancer.Data.Equipment { public class Gun : AbstractEquipment { - [Entry("da_archetype")] - public string DaArchetype; - [Entry("material_library")] - public string MaterialLibrary; - [Entry("ids_name")] - public int IdsName; - [Entry("ids_info")] - public int IdsInfo; [Entry("hit_pts")] public int Hitpoints; [Entry("turn_rate")] diff --git a/src/LibreLancer.Data/Equipment/PowerCore.cs b/src/LibreLancer.Data/Equipment/PowerCore.cs index 2a80328a..6696d822 100644 --- a/src/LibreLancer.Data/Equipment/PowerCore.cs +++ b/src/LibreLancer.Data/Equipment/PowerCore.cs @@ -8,9 +8,17 @@ namespace LibreLancer.Data.Equipment { public class PowerCore : AbstractEquipment { - [Entry("da_archetype")] - public string DaArchetype; - [Entry("material_library")] - public string MaterialLibrary; + [Entry("volume")] + public int Volume; + [Entry("mass")] + public int Mass; + [Entry("capacity")] + public int Capacity; + [Entry("charge_rate")] + public int ChargeRate; + [Entry("thrust_capacity")] + public int ThrustCapacity; + [Entry("thrust_charge_rate")] + public int ThrustChargeRate; } } diff --git a/src/LibreLancer.Data/Equipment/Thruster.cs b/src/LibreLancer.Data/Equipment/Thruster.cs index 8f027153..2f58db9b 100644 --- a/src/LibreLancer.Data/Equipment/Thruster.cs +++ b/src/LibreLancer.Data/Equipment/Thruster.cs @@ -8,22 +8,14 @@ namespace LibreLancer.Data.Equipment { public class Thruster : AbstractEquipment { - [Entry("particles")] + [Entry("particles")] public string Particles; - [Entry("da_archetype")] - public string DaArchetype; - [Entry("material_library")] - public string MaterialLibrary; [Entry("hp_particles")] public string HpParticles; [Entry("max_force")] public int MaxForce; [Entry("power_usage")] public int PowerUsage; - [Entry("ids_name")] - public int IdsName; - [Entry("ids_info")] - public int IdsInfo; [Entry("hit_pts")] public int Hitpoints; } diff --git a/src/LibreLancer/Utf/Cmp/Part.cs b/src/LibreLancer/Utf/Cmp/Part.cs index bb581ebd..bf9e1470 100644 --- a/src/LibreLancer/Utf/Cmp/Part.cs +++ b/src/LibreLancer/Utf/Cmp/Part.cs @@ -33,7 +33,13 @@ public AbstractConstruct Construct return construct; } } - + /// + /// EDITOR USE ONLY: Changes the construct object for the part + /// + public void UpdateConstruct(AbstractConstruct con) + { + construct = con; + } private string fileName; private ModelFile model; public ModelFile Model