public bool TryGetResource(out ResourceTag tag) { Transform transform = Internal.transform; byte x; byte y; if (Regions.tryGetCoordinate(transform.position, out x, out y)) { List <ResourceSpawnpoint> list = LevelGround.trees[x, y]; foreach (ResourceSpawnpoint resource in list) { if (transform == resource.model) { tag = new ResourceTag(resource); return(true); } } } tag = null; return(false); }
public bool TryGetResource(out ResourceTag tag) { Transform transform = Internal.transform; byte x; byte y; if (Regions.tryGetCoordinate(transform.position, out x, out y)) { List<ResourceSpawnpoint> list = LevelGround.trees[x, y]; foreach (ResourceSpawnpoint resource in list) { if (transform == resource.model) { tag = new ResourceTag(resource); return true; } } } tag = null; return false; }
public static bool ResourceDamaged(ResourceSpawnpoint resource, ref ushort amount) { // TODO: causes? ResourceTag resourceTag = new ResourceTag(resource); if (amount >= resource.health) { ResourceDestroyedEventArgs deathevt = new ResourceDestroyedEventArgs(); deathevt.Resource = resourceTag; deathevt.Amount = new NumberTag(amount); UnturnedFreneticEvents.OnResourceDestroyed.Fire(deathevt); amount = (ushort)deathevt.Amount.Internal; return deathevt.Cancelled || EntityDestroyed(resourceTag, ref amount); } ResourceDamagedEventArgs evt = new ResourceDamagedEventArgs(); evt.Resource = resourceTag; evt.Amount = new NumberTag(amount); UnturnedFreneticEvents.OnResourceDamaged.Fire(evt); amount = (ushort)evt.Amount.Internal; return evt.Cancelled || EntityDamaged(resourceTag, ref amount); }