Update FieldConfiguration to support generic multiplier types

This commit is contained in:
2025-02-24 09:59:03 +01:00
parent 11c7d74489
commit cda2f3a75c
8 changed files with 22 additions and 21 deletions

View File

@@ -29,11 +29,11 @@ namespace TerraTech {
}
private static void ConfigureFanThruster(MultipliedObject<Thruster> obj) {
obj.AddField(new FieldConfiguration<float>("m_Force", fanThrustMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_Force", fanThrustMultiplier));
}
private static void ConfigureJetThruster(MultipliedObject<Thruster> obj) {
obj.AddField(new FieldConfiguration<float>("m_Force", jetThrustMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_Force", jetThrustMultiplier));
}
[HarmonyPrefix]

View File

@@ -27,8 +27,8 @@ namespace TerraTech {
}
private static void ConfigureModuleEnergy(MultipliedObject<ModuleEnergy> obj) {
obj.AddField(new FieldConfiguration<float>("m_OutputPerSecond", outputMultiplier));
obj.AddField(new FieldConfiguration<float>("m_PowerUpDelay", powerUpDelayMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_OutputPerSecond", outputMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_PowerUpDelay", powerUpDelayMultiplier));
}
[HarmonyPrefix]

View File

@@ -21,7 +21,7 @@ namespace TerraTech {
}
private static void ConfigureModuleEnergyStore(MultipliedObject<ModuleEnergyStore> obj) {
obj.AddField(new FieldConfiguration<float>("m_Capacity", capacityMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_Capacity", capacityMultiplier));
}
[HarmonyPrefix]

View File

@@ -21,7 +21,7 @@ namespace TerraTech {
}
private static void ConfigureModuleGyro(MultipliedObject<ModuleGyro> obj) {
obj.AddField(new FieldConfiguration<float>("m_ActiveSpeed", activeSpeedMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_ActiveSpeed", activeSpeedMultiplier));
}
[HarmonyPrefix]

View File

@@ -61,24 +61,24 @@ namespace TerraTech {
}
private static void ConfigureBeam(MultipliedObject<ModuleItemHolder> obj) {
obj.AddField(new FieldConfiguration<int>("m_CapacityPerStack", capacityPerStackMultiplier));
obj.AddField(new FieldConfiguration<int, float>("m_CapacityPerStack", capacityPerStackMultiplier));
}
private static void ConfigureBeamHolder(MultipliedObject<ModuleItemHolderBeam> obj) {
obj.AddField(new FieldConfiguration<float>("m_BeamStrength", beamStrengthMultiplier));
obj.AddField(new FieldConfiguration<float>("m_HeightIncrementScale", beamHeightIncrementScaleMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_BeamStrength", beamStrengthMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_HeightIncrementScale", beamHeightIncrementScaleMultiplier));
}
private static void ConfigureBeamPickup(MultipliedObject<ModuleItemPickup> obj) {
obj.AddField(new FieldConfiguration<float>("m_PickupRange", beamPickupRangeMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_PickupRange", beamPickupRangeMultiplier));
}
private static void ConfigureMagnetHolder(MultipliedObject<ModuleItemHolderMagnet> obj) {
obj.AddField(new FieldConfiguration<float>("m_Strength", magnetStrengthMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_Strength", magnetStrengthMultiplier));
}
private static void ConfigureMagnetPickup(MultipliedObject<ModuleItemPickup> obj) {
obj.AddField(new FieldConfiguration<float>("m_PickupRange", magnetPickupRangeMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_PickupRange", magnetPickupRangeMultiplier));
}
[HarmonyPrefix]

View File

@@ -39,14 +39,15 @@ namespace TerraTech {
}
private static void ConfigureShieldGenerator(MultipliedObject<ModuleShieldGenerator> obj) {
obj.AddField(new FieldConfiguration<float>("m_HealingHeartbeatInterval", heartbeatIntervalMultiplier));
obj.AddField(
new FieldConfiguration<float, float>("m_HealingHeartbeatInterval", heartbeatIntervalMultiplier));
obj.AddField(new FieldConfiguration<float>("m_Radius", radiusMultiplier, instance => {
obj.AddField(new FieldConfiguration<float, float>("m_Radius", radiusMultiplier, instance => {
var shield = (ModuleShieldGenerator)instance;
return shield.m_Healing ? radiusMultiplierHealing : radiusMultiplier;
}));
obj.AddField(new FieldConfiguration<float>("m_PowerUpDelay", powerUpDelayMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_PowerUpDelay", powerUpDelayMultiplier));
}
[HarmonyPrefix]

View File

@@ -27,8 +27,8 @@ namespace TerraTech {
}
private static void ConfigureFireData(MultipliedObject<FireData> obj) {
obj.AddField(new FieldConfiguration<float>("m_MuzzleVelocity", muzzleVelocityMultiplier));
obj.AddField(new FieldConfiguration<float>("m_KickbackStrength", kickbackStrengthMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_MuzzleVelocity", muzzleVelocityMultiplier));
obj.AddField(new FieldConfiguration<float, float>("m_KickbackStrength", kickbackStrengthMultiplier));
}
[HarmonyPrefix]

View File

@@ -33,11 +33,11 @@ namespace TerraTech {
}
private static void ConfigureAerofoil(MultipliedObject<ModuleWing.Aerofoil> obj) {
obj.AddField(new FieldConfiguration<float>("flipAngleRangeActual", angleRangeMultiplier));
obj.AddField(new FieldConfiguration<float>("flipAngleRangeVisual", angleRangeMultiplier));
obj.AddField(new FieldConfiguration<float, float>("flipAngleRangeActual", angleRangeMultiplier));
obj.AddField(new FieldConfiguration<float, float>("flipAngleRangeVisual", angleRangeMultiplier));
obj.AddField(new FieldConfiguration<float>("flipAngleTurnSpeed", turnSpeedMultiplier));
obj.AddField(new FieldConfiguration<float>("liftStrength", liftStrengthMultiplier));
obj.AddField(new FieldConfiguration<float, float>("flipAngleTurnSpeed", turnSpeedMultiplier));
obj.AddField(new FieldConfiguration<float, float>("liftStrength", liftStrengthMultiplier));
}
[HarmonyPrefix]