public void PropertiesChanged(IMyTerminalBlock block) { if (block == null) { return; } //subpart = block.GetSubpart(subpartName); block.TryGetSubpart(subpartName, out subpart); if (OneEmissiveMaterial) { CheckAndSetEmissives(); } else { if (StaticThrusterData.Any()) { foreach (var data in StaticThrusterData) { PrepData(data); CheckAndSetEmissives(); } } if (DynamicThrusterData.Any()) { NeedsUpdate = MyEntityUpdateEnum.EACH_FRAME; } } }
public override void UpdateOnceBeforeFrame() { if (Block == null) { return; } var subtypeId = Block.BlockDefinition.SubtypeId; if (EmissiveDataInstance.EmissiveUserData.ContainsKey(subtypeId)) { EmissiveDataSet = EmissiveDataInstance.EmissiveUserData[subtypeId]; } else { return; } // Not really used but ready if needed. Dictionary <string, IMyModelDummy> modelDummy = new Dictionary <string, IMyModelDummy>(); MyEntitySubpart foundSubpart; Block.Model.GetDummies(modelDummy); foreach (var subpart in modelDummy.Keys) { if (Block.TryGetSubpart(subpart, out foundSubpart)) { SubpartList.Add(foundSubpart); } } if (SubpartList.Count > 0) { HasSubpart = true; } // Hook to events. Block.PropertiesChanged += PropertiesChanged; Block.IsWorkingChanged += IsWorkingChanged; NeedsUpdate = MyEntityUpdateEnum.EACH_100TH_FRAME; }