Upload from upload_mods.ps1

This commit is contained in:
Nathaniel Cosford
2025-06-04 16:13:32 +09:30
commit 7345f42201
470 changed files with 51966 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
using HarmonyLib;
using KFCommonUtilityLib.Scripts.Attributes;
public class DisplayAsBuffEntityUINotification : BuffEntityUINotification
{
public ActionModuleDisplayAsBuff.DisplayValueType displayType = ActionModuleDisplayAsBuff.DisplayValueType.Meta;
public string displayData = string.Empty;
public override float CurrentValue
{
get
{
EntityPlayerLocal player = GameManager.Instance.World.GetPrimaryPlayer();
if (player == null)
return 0;
switch (displayType)
{
case ActionModuleDisplayAsBuff.DisplayValueType.Meta:
return player.inventory.holdingItemItemValue.Meta;
case ActionModuleDisplayAsBuff.DisplayValueType.MetaData:
return (float)player.inventory.holdingItemItemValue.GetMetadata(displayData);
default:
return 0;
}
}
}
public override bool Visible => true;
public override EnumEntityUINotificationDisplayMode DisplayMode => EnumEntityUINotificationDisplayMode.IconPlusCurrentValue;
}
[TypeTarget(typeof(ItemActionRanged))]
public class ActionModuleDisplayAsBuff
{
public enum DisplayValueType
{
Meta,
MetaData
}
private DisplayAsBuffEntityUINotification notification;
private BuffClass buffClass;
[HarmonyPatch(nameof(ItemAction.ReadFrom)), MethodTargetPostfix]
private void Postfix_ReadFrom(DynamicProperties _props)
{
notification = new DisplayAsBuffEntityUINotification();
_props.Values.TryGetValue("DisplayType", out string str);
EnumUtils.TryParse(str, out notification.displayType, true);
_props.Values.TryGetValue("DisplayData", out notification.displayData);
_props.Values.TryGetValue("DisplayBuff", out str);
BuffClass buffClass = BuffManager.GetBuff(str);
BuffValue buff = new BuffValue(buffClass.Name, Vector3i.zero, -1, buffClass);
notification.SetBuff(buff);
}
[HarmonyPatch(nameof(ItemAction.StartHolding)), MethodTargetPostfix]
private void Postfix_StartHolding(ItemActionData _data)
{
EntityPlayerLocal player = _data.invData.holdingEntity as EntityPlayerLocal;
if (player != null && notification != null)
{
notification.SetStats(player.Stats);
player.Stats.NotificationAdded(notification);
}
}
[HarmonyPatch(nameof(ItemAction.StopHolding)), MethodTargetPostfix]
private void Postfix_StopHolding(ItemActionData _data)
{
EntityPlayerLocal player = _data.invData.holdingEntity as EntityPlayerLocal;
if (player != null && notification != null)
{
player.Stats.NotificationRemoved(notification);
}
}
}