예제 #1
0
        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);
        }
예제 #2
0
 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);
 }