Fix booster cast
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
|
||||||
namespace TerraTech {
|
namespace TerraTech {
|
||||||
[HarmonyPatch]
|
[HarmonyPatch]
|
||||||
public class ModuleBoosterManager {
|
public class ModuleBoosterManager {
|
||||||
private static readonly MultipliedObjectManager<Thruster> fanManager =
|
private static readonly MultipliedObjectManager<FanJet> fanManager =
|
||||||
new MultipliedObjectManager<Thruster>(ConfigureFanThruster);
|
new MultipliedObjectManager<FanJet>(ConfigureFanThruster);
|
||||||
private static readonly MultipliedObjectManager<Thruster> jetManager =
|
private static readonly MultipliedObjectManager<BoosterJet> jetManager =
|
||||||
new MultipliedObjectManager<Thruster>(ConfigureJetThruster);
|
new MultipliedObjectManager<BoosterJet>(ConfigureJetThruster);
|
||||||
|
|
||||||
public static ConfigEntry<float> fanThrustMultiplier;
|
public static ConfigEntry<float> fanThrustMultiplier;
|
||||||
public static ConfigEntry<float> jetThrustMultiplier;
|
public static ConfigEntry<float> jetThrustMultiplier;
|
||||||
@@ -28,11 +29,11 @@ namespace TerraTech {
|
|||||||
jetThrustMultiplier.SettingChanged += (sender, args) => DoPatch();
|
jetThrustMultiplier.SettingChanged += (sender, args) => DoPatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ConfigureFanThruster(MultipliedObject<Thruster> obj) {
|
private static void ConfigureFanThruster(MultipliedObject<FanJet> obj) {
|
||||||
obj.AddField(new FieldConfiguration<float, float>("m_Force", fanThrustMultiplier));
|
obj.AddField(new FieldConfiguration<float, float>("m_Force", fanThrustMultiplier));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ConfigureJetThruster(MultipliedObject<Thruster> obj) {
|
private static void ConfigureJetThruster(MultipliedObject<BoosterJet> obj) {
|
||||||
obj.AddField(new FieldConfiguration<float, float>("m_Force", jetThrustMultiplier));
|
obj.AddField(new FieldConfiguration<float, float>("m_Force", jetThrustMultiplier));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,8 +41,8 @@ namespace TerraTech {
|
|||||||
[HarmonyPatch(typeof(ModuleBooster), "OnAttached")]
|
[HarmonyPatch(typeof(ModuleBooster), "OnAttached")]
|
||||||
static void PostfixCreate(ModuleBooster __instance) {
|
static void PostfixCreate(ModuleBooster __instance) {
|
||||||
var trav = Traverse.Create(__instance);
|
var trav = Traverse.Create(__instance);
|
||||||
var fans = trav.Field("fans").GetValue<Thruster[]>();
|
var fans = trav.Field("fans").GetValue<List<FanJet>>();
|
||||||
var jets = trav.Field("jets").GetValue<Thruster[]>();
|
var jets = trav.Field("jets").GetValue<List<BoosterJet>>();
|
||||||
|
|
||||||
foreach (var fan in fans) fanManager.OnObjectAttached(fan);
|
foreach (var fan in fans) fanManager.OnObjectAttached(fan);
|
||||||
foreach (var jet in jets) jetManager.OnObjectAttached(jet);
|
foreach (var jet in jets) jetManager.OnObjectAttached(jet);
|
||||||
@@ -51,8 +52,8 @@ namespace TerraTech {
|
|||||||
[HarmonyPatch(typeof(ModuleBooster), "OnDetaching")]
|
[HarmonyPatch(typeof(ModuleBooster), "OnDetaching")]
|
||||||
static void PostfixDestroy(ModuleBooster __instance) {
|
static void PostfixDestroy(ModuleBooster __instance) {
|
||||||
var trav = Traverse.Create(__instance);
|
var trav = Traverse.Create(__instance);
|
||||||
var fans = trav.Field("fans").GetValue<Thruster[]>();
|
var fans = trav.Field("fans").GetValue<List<FanJet>>();
|
||||||
var jets = trav.Field("jets").GetValue<Thruster[]>();
|
var jets = trav.Field("jets").GetValue<List<BoosterJet>>();
|
||||||
|
|
||||||
foreach (var fan in fans) fanManager.OnObjectDetached(fan);
|
foreach (var fan in fans) fanManager.OnObjectDetached(fan);
|
||||||
foreach (var jet in jets) jetManager.OnObjectDetached(jet);
|
foreach (var jet in jets) jetManager.OnObjectDetached(jet);
|
||||||
|
Reference in New Issue
Block a user