private void OnGrowableGathered(GrowableEntity growable, Item item, BasePlayer player) { float modifier; if (GatherResourceModifiers.TryGetValue(item.info.displayName.english, out modifier)) { item.amount = (int)(item.amount * modifier); } else if (GatherResourceModifiers.TryGetValue("*", out modifier)) { item.amount = (int)(item.amount * modifier); } }
private void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item) { if (!entity.ToPlayer()) { return; } var gatherType = dispenser.gatherType.ToString("G"); var amount = item.amount; float modifier; if (GatherResourceModifiers.TryGetValue(item.info.displayName.english, out modifier)) { item.amount = (int)(item.amount * modifier); } else if (GatherResourceModifiers.TryGetValue("*", out modifier)) { item.amount = (int)(item.amount * modifier); } if (!GatherResourceModifiers.ContainsKey(gatherType)) { return; } var dispenserModifier = GatherDispenserModifiers[gatherType]; try { dispenser.containedItems.Single(x => x.itemid == item.info.itemid).amount += amount - item.amount / dispenserModifier; if (dispenser.containedItems.Single(x => x.itemid == item.info.itemid).amount < 0) { item.amount += (int)dispenser.containedItems.Single(x => x.itemid == item.info.itemid).amount; } } catch { } }