Upload from upload_mods.ps1

This commit is contained in:
Nathaniel Cosford
2025-06-04 16:44:53 +09:30
commit f1fbbe67bb
1722 changed files with 165268 additions and 0 deletions

View File

@@ -0,0 +1,115 @@

using System.Collections.Generic;
namespace Harmony.EntityLootContainerPatches
{
/*[HarmonyPatch(typeof(EntityLootContainer))]
[HarmonyPatch("OnUpdateEntity")]
public class OnUpdateEntityPatch
{
[HarmonyTranspiler]
public static IEnumerable<CodeInstruction> OnUpdateEntity(IEnumerable<CodeInstruction> instructions)
{
var codes = new List<CodeInstruction>(instructions);
for (int i = 0; i < codes.Count; i++)
{
if ((codes[i].opcode == OpCodes.Ldarg_0) && (codes[i+2].opcode == OpCodes.Ldc_I4_1))
{
codes[i+2].opcode = OpCodes.Ldc_I4_0;
break;
}
}
return codes;
}
}*/
[HarmonyPatch(typeof(EntityLootContainer))]
[HarmonyPatch("OnUpdateEntity")]
public class OnUpdateEntityPatch
{
public static bool Prefix(EntityLootContainer __instance)
{
Log.Out("EntityLootContainerPatches-OnUpdateEntity START");
bool isInWater = __instance.isInWater;
if (!__instance.isEntityStatic())
__instance.TickInWater();
if (__instance.isEntityRemote)
return false;
if (__instance.isInWater)
{
if (!isInWater && !__instance.firstUpdate && (double)__instance.fallDistance > 1.0)
__instance.PlayOneShot("waterfallinginto");
__instance.fallDistance = 0.0f;
}
if (!__instance.RootMotion && !__instance.IsDead() && __instance.CanBePushed())
{
List<Entity> entitiesInBounds = __instance.world.GetEntitiesInBounds(__instance, BoundsUtils.ExpandBounds(__instance.boundingBox, 0.2f, __instance.GetPushBoundsVertical(), 0.2f));
if (entitiesInBounds != null && entitiesInBounds.Count > 0)
{
for (int index = 0; index < entitiesInBounds.Count; ++index)
__instance.OnPushEntity(entitiesInBounds[index]);
}
}
__instance.firstUpdate = false;
if (!__instance.bMeshCreated)
__instance.createMesh();
if (__instance.itemWorldData != null)
__instance.itemClass.OnDroppedUpdate(__instance.itemWorldData);
if ((double)Utils.FastAbs(__instance.position.y - __instance.prevPos.y) < 0.10000000149011612)
{
++__instance.onGroundCounter;
if (__instance.onGroundCounter > 10)
__instance.onGround = true;
}
if (__instance.isPhysicsMaster && !SingletonMonoBehaviour<ConnectionManager>.Instance.IsServer && (__instance.ticksExisted & 1) != 0)
__instance.PhysicsMasterSendToServer(__instance.transform);
__instance.checkGravitySetting(__instance.isPhysicsMaster);
if (__instance.isEntityRemote)
return false;
if (!(bool)(UnityEngine.Object)__instance.itemTransform)
__instance.lifetime = 0.0f;
__instance.lifetime -= 0.05f;
if ((double)__instance.lifetime <= 0.0)
__instance.SetDead();
if (__instance.itemClass != null && __instance.itemClass.IsEatDistraction && __instance.distractionLifetime > 0 && __instance.distractionEatTicks <= 0)
__instance.SetDead();
if ((double)__instance.transform.position.y + (double)Origin.position.y < 0.0)
__instance.SetDead();
if (__instance.IsDead())
return false;
__instance.tickDistraction();
if (__instance.lootContainer != null && __instance.deathUpdateTime > 0)
{
bool flag = GameManager.Instance.GetEntityIDForLockedTileEntity((TileEntity)__instance.lootContainer) != -1;
if (!__instance.bRemoved && !__instance.lootContainer.IsUserAccessing() && !flag && (__instance.lootContainer.bTouched && __instance.lootContainer.IsEmpty() || __instance.deathUpdateTime >= __instance.timeStayAfterDeath - 1))
__instance.removeBackpack();
}
++__instance.deathUpdateTime;
if (__instance.world.IsRemote() || !__instance.forceInventoryCreate && __instance.lootContainer != null)
return false;
__instance.lootContainer = new TileEntityLootContainer((Chunk)null);
__instance.lootContainer.bTouched = false;
__instance.lootContainer.entityId = __instance.entityId;
__instance.lootContainer.lootListName = __instance.GetLootList();
__instance.lootContainer.SetContainerSize(LootContainer.GetLootContainer(__instance.lootContainer.lootListName).size, true);
if (__instance.isInventory != null)
{
__instance.lootContainer.bTouched = false;
Log.Out("EntityLootContainerPatches-OnUpdateEntity CREATING IVENTORY");
for (int index = 0; index < __instance.isInventory.Length; ++index)
{
if (!__instance.isInventory[index].IsEmpty())
__instance.lootContainer.AddItem(__instance.isInventory[index]);
}
}
__instance.lootContainer.SetModified();
__instance.forceInventoryCreate = false;
return false;
}
}
}