public void UpdateTags(HandleVector <int> .Handle fetchable_handle) { Fetchable data = fetchables.GetData(fetchable_handle); TagBits rhs = new TagBits(ref disallowedTagMask); data.pickupable.KPrefabID.AndTagBits(ref rhs); data.tagBitsHash = rhs.GetHashCode(); fetchables.SetData(fetchable_handle, data); }
public HandleVector <int> .Handle AddPickupable(Pickupable pickupable) { byte foodQuality = 5; Edible component = pickupable.GetComponent <Edible>(); if ((Object)component != (Object)null) { foodQuality = (byte)component.GetQuality(); } byte masterPriority = 0; Prioritizable prioritizable = null; if ((Object)pickupable.storage != (Object)null) { prioritizable = pickupable.storage.prioritizable; if ((Object)prioritizable != (Object)null) { PrioritySetting masterPriority2 = prioritizable.GetMasterPriority(); masterPriority = (byte)masterPriority2.priority_value; } } Rottable.Instance sMI = pickupable.GetSMI <Rottable.Instance>(); byte freshness = 0; if (!sMI.IsNullOrStopped()) { freshness = QuantizeRotValue(sMI.RotValue); } KPrefabID component2 = pickupable.GetComponent <KPrefabID>(); TagBits rhs = new TagBits(ref disallowedTagMask); component2.AndTagBits(ref rhs); HandleVector <int> .Handle handle = fetchables.Allocate(new Fetchable { pickupable = pickupable, foodQuality = foodQuality, freshness = freshness, masterPriority = masterPriority, tagBitsHash = rhs.GetHashCode() }); if (!sMI.IsNullOrStopped()) { rotUpdaters[handle] = sMI; } return(handle); }