private static void RegisterRifle(ModRifleComponent modRifleComponent, Transform weaponViewTransform) { string name = ModComponentUtils.NameUtils.NormalizeName(modRifleComponent.name); if (weaponViewTransform.Find(name) != null) { // already registered return; } Logger.Log("Registering '{0}'", name); GameObject template = weaponViewTransform.Find("Rifle").gameObject; GameObject weapon = UnityEngine.Object.Instantiate(template, weaponViewTransform); weapon.name = name; weapon.AddComponent <FixMuzzleFlashTransformParent>(); weapon.GetComponent <vp_FPSWeapon>().m_UseFirstPersonHands = false; Transform rifle_rig = weapon.transform.Find("rifle_rig"); if (rifle_rig != null) { rifle_rig.transform.parent = null; UnityEngine.Object.Destroy(rifle_rig.gameObject); } GameObject equippedModelPrefab = Resources.Load(modRifleComponent.EquippedModelPrefabName)?.Cast <GameObject>(); GameObject equippedModel = UnityEngine.Object.Instantiate(equippedModelPrefab, weapon.transform); equippedModel.name = (name + "_rig").ToLower(); }
private static FirstPersonItem ConfiguredRifleFirstPersonItem(ModRifleComponent modRifleComponent) { FirstPersonItem result = ModUtils.GetOrCreateComponent <FirstPersonItem>(modRifleComponent); FirstPersonItem template = Resources.Load <GameObject>("GEAR_Rifle").GetComponent <FirstPersonItem>(); result.m_FirstPersonObjectName = ModUtils.NormalizeName(modRifleComponent.name); result.m_UnWieldAudio = template.m_UnWieldAudio; result.m_WieldAudio = template.m_WieldAudio; result.m_PlayerStateTransitions = UnityEngine.Object.Instantiate(template.m_PlayerStateTransitions); result.Awake(); return(result); }
private static void InitializeRifleComponent(ModRifleComponent modRifle, ProxyObject dict, string className = "ModRifleComponent") { InitializeEquippableComponent(modRifle, dict, className); modRifle.ClipSize = dict[className]["ClipSize"]; modRifle.DamagePerShot = dict[className]["DamagePerShot"]; modRifle.Range = dict[className]["Range"]; modRifle.FiringDelay = dict[className]["FiringDelay"]; modRifle.ReloadDelay = dict[className]["ReloadDelay"]; modRifle.AimDelay = dict[className]["AimDelay"]; modRifle.MuzzleFlashDelay = dict[className]["MuzzleFlashDelay"]; modRifle.MuzzleSmokeDelay = dict[className]["MuzzleSmokeDelay"]; modRifle.MinSway = dict[className]["MinSway"]; modRifle.MaxSway = dict[className]["MaxSway"]; modRifle.SwayIncrement = dict[className]["SwayIncrement"]; }
private static void ConfigureRifle(ModComponent modComponent) { ModRifleComponent modRifleComponent = modComponent as ModRifleComponent; if (modRifleComponent == null) { return; } GunItem gunItem = ModUtils.GetOrCreateComponent <GunItem>(modRifleComponent); gunItem.m_GunType = GunType.Rifle; gunItem.m_AmmoPrefab = (GameObject)Resources.Load("GEAR_RifleAmmoSingle"); gunItem.m_AmmoSpriteName = "ico_units_ammo"; gunItem.m_AccuracyRange = modRifleComponent.Range; gunItem.m_ClipSize = modRifleComponent.ClipSize; gunItem.m_DamageHP = modRifleComponent.DamagePerShot; gunItem.m_FiringRateSeconds = modRifleComponent.FiringDelay; gunItem.m_MuzzleFlash_FlashDelay = modRifleComponent.MuzzleFlashDelay; gunItem.m_MuzzleFlash_SmokeDelay = modRifleComponent.MuzzleSmokeDelay; gunItem.m_ReloadCoolDownSeconds = modRifleComponent.ReloadDelay; gunItem.m_DryFireAudio = "Play_RifleDryFire"; gunItem.m_ImpactAudio = "Play_BulletImpacts"; gunItem.m_SwayIncreasePerSecond = modRifleComponent.SwayIncrement; gunItem.m_SwayValueZeroFatigue = modRifleComponent.MinSway; gunItem.m_SwayValueMaxFatigue = modRifleComponent.MaxSway; Cleanable cleanable = ModUtils.GetOrCreateComponent <Cleanable>(modRifleComponent); cleanable.m_ConditionIncreaseMin = 2; cleanable.m_ConditionIncreaseMin = 5; cleanable.m_DurationMinutesMin = 15; cleanable.m_DurationMinutesMax = 5; cleanable.m_CleanAudio = "Play_RifleCleaning"; cleanable.m_RequiresToolToClean = true; cleanable.m_CleanToolChoices = new ToolsItem[] { Resources.Load <GameObject>("GEAR_RifleCleaningKit").GetComponent <ToolsItem>() }; FirstPersonItem firstPersonItem = ConfiguredRifleFirstPersonItem(modRifleComponent); ModAnimationStateMachine animation = ModUtils.GetOrCreateComponent <ModAnimationStateMachine>(modRifleComponent); animation.SetTransitions(firstPersonItem.m_PlayerStateTransitions); }
private static FirstPersonItem ConfiguredRifleFirstPersonItem(ModRifleComponent modRifleComponent) { FirstPersonItem result = ModComponentUtils.ComponentUtils.GetOrCreateComponent <FirstPersonItem>(modRifleComponent); GameObject revolver = Resources.Load <GameObject>("GEAR_Revolver"); if (revolver is null) { Logger.LogWarning("Could not load revolver gameobject!"); } else { Logger.LogWarning("Loaded revolver gameobject!"); } FirstPersonItem template = revolver?.GetComponent <FirstPersonItem>(); if (template is null) { Logger.LogWarning("Could not load first person template from revolver!"); } else { Logger.LogWarning("Loaded first person template from revolver!"); } result.m_FirstPersonObjectName = ModComponentUtils.NameUtils.NormalizeName(modRifleComponent.name); result.m_UnWieldAudio = template.m_UnWieldAudio; result.m_WieldAudio = template.m_WieldAudio; Logger.LogWarning("made it this far"); result.m_PlayerStateTransitions = Object.Instantiate(template.m_PlayerStateTransitions); Logger.LogWarning("farther"); //result.Awake(); Logger.LogWarning("the end"); return(result); }
public static void RegisterRifle(ModRifleComponent modRifleComponent) { pendingRifles.Add(modRifleComponent); }
public static void InitializeComponents(ref GameObject prefab, ProxyObject dict) { if (ComponentUtils.GetModComponent(prefab) != null || dict is null) { return; } #region Mod Components if (JsonUtils.ContainsKey(dict, "ModBedComponent")) { ModBedComponent newComponent = ComponentUtils.GetOrCreateComponent <ModBedComponent>(prefab); InitializeBedComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModBodyHarvestComponent")) { ModBodyHarvestComponent newComponent = ComponentUtils.GetOrCreateComponent <ModBodyHarvestComponent>(prefab); InitializeBodyHarvestComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModCharcoalComponent")) { ModCharcoalComponent newComponent = ComponentUtils.GetOrCreateComponent <ModCharcoalComponent>(prefab); InitializeCharcoalComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModClothingComponent")) { ModClothingComponent newComponent = ComponentUtils.GetOrCreateComponent <ModClothingComponent>(prefab); InitializeClothingComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModCollectibleComponent")) { ModCollectibleComponent newComponent = ComponentUtils.GetOrCreateComponent <ModCollectibleComponent>(prefab); InitializeCollectibleComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModCookableComponent")) { ModCookableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModCookableComponent>(prefab); InitializeCookableComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModCookingPotComponent")) { ModCookingPotComponent newComponent = ComponentUtils.GetOrCreateComponent <ModCookingPotComponent>(prefab); InitializeCookingPotComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModExplosiveComponent")) { ModExplosiveComponent newComponent = ComponentUtils.GetOrCreateComponent <ModExplosiveComponent>(prefab); InitializeExplosiveComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModFirstAidComponent")) { ModFirstAidComponent newComponent = ComponentUtils.GetOrCreateComponent <ModFirstAidComponent>(prefab); InitializeFirstAidComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModFoodComponent")) { ModFoodComponent newComponent = ComponentUtils.GetOrCreateComponent <ModFoodComponent>(prefab); InitializeFoodComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModGenericComponent")) { ModGenericComponent newComponent = ComponentUtils.GetOrCreateComponent <ModGenericComponent>(prefab); InitializeGenericComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModGenericEquippableComponent")) { ModGenericEquippableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModGenericEquippableComponent>(prefab); InitializeGenericEquippableComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModLiquidComponent")) { ModLiquidComponent newComponent = ComponentUtils.GetOrCreateComponent <ModLiquidComponent>(prefab); InitializeLiquidComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModPowderComponent")) { ModPowderComponent newComponent = ComponentUtils.GetOrCreateComponent <ModPowderComponent>(prefab); InitializePowderComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModPurificationComponent")) { ModPurificationComponent newComponent = ComponentUtils.GetOrCreateComponent <ModPurificationComponent>(prefab); InitializePurificationComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModRandomItemComponent")) { ModRandomItemComponent newComponent = ComponentUtils.GetOrCreateComponent <ModRandomItemComponent>(prefab); InitializeRandomItemComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModRandomWeightedItemComponent")) { ModRandomWeightedItemComponent newComponent = ComponentUtils.GetOrCreateComponent <ModRandomWeightedItemComponent>(prefab); InitializeRandomWeightedItemComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModResearchComponent")) { ModResearchComponent newComponent = ComponentUtils.GetOrCreateComponent <ModResearchComponent>(prefab); InitializeResearchComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModRifleComponent")) { ModRifleComponent newComponent = ComponentUtils.GetOrCreateComponent <ModRifleComponent>(prefab); InitializeRifleComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModToolComponent")) { ModToolComponent newComponent = ComponentUtils.GetOrCreateComponent <ModToolComponent>(prefab); InitializeToolComponent(newComponent, dict); } #endregion #region Behaviour Components if (JsonUtils.ContainsKey(dict, "ModAccelerantComponent")) { ModAccelerantComponent newComponent = ComponentUtils.GetOrCreateComponent <ModAccelerantComponent>(prefab); InitializeAccelerantComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModBurnableComponent")) { ModBurnableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModBurnableComponent>(prefab); InitializeBurnableComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModFireStarterComponent")) { ModFireStarterComponent newComponent = ComponentUtils.GetOrCreateComponent <ModFireStarterComponent>(prefab); InitializeFireStarterComponent(newComponent, dict); } else if (JsonUtils.ContainsKey(dict, "ModTinderComponent")) { ModTinderComponent newComponent = ComponentUtils.GetOrCreateComponent <ModTinderComponent>(prefab); InitializeTinderComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModCarryingCapacityComponent")) { ModCarryingCapacityComponent newComponent = ComponentUtils.GetOrCreateComponent <ModCarryingCapacityComponent>(prefab); InitializeCarryingCapacityComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModEvolveComponent")) { ModEvolveComponent newComponent = ComponentUtils.GetOrCreateComponent <ModEvolveComponent>(prefab); InitializeEvolveComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModHarvestableComponent")) { ModHarvestableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModHarvestableComponent>(prefab); InitializeHarvestableComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModMillableComponent")) { ModMillableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModMillableComponent>(prefab); InitializeMillableComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModRepairableComponent")) { ModRepairableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModRepairableComponent>(prefab); InitializeRepairableComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModScentComponent")) { ModScentComponent newComponent = ComponentUtils.GetOrCreateComponent <ModScentComponent>(prefab); InitializeScentComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModSharpenableComponent")) { ModSharpenableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModSharpenableComponent>(prefab); InitializeSharpenableComponent(newComponent, dict); } if (JsonUtils.ContainsKey(dict, "ModStackableComponent")) { ModStackableComponent newComponent = ComponentUtils.GetOrCreateComponent <ModStackableComponent>(prefab); InitializeStackableComponent(newComponent, dict); } #endregion #region Modifications if (JsonUtils.ContainsKey(dict, "ChangeLayer")) { ChangeLayer newComponent = ComponentUtils.GetOrCreateComponent <ChangeLayer>(prefab); InitializeChangeLayer(newComponent, dict); } #endregion }