Beispiel #1
0
        /// <summary>
        /// CAN TYPE NETWORK TO
        /// </summary>
        /// <returns>Whether to network to</returns>
        /// <param name="entity">Entity.</param>
        /// <param name="target">Target.</param>
        object CanNetworkTo(BaseNetworkable entity, BasePlayer target)
        {
            string hook;

            if (TryGetHook(entity.GetType(), networkableTypes, out hook))
            {
                return(Interface.Oxide.CallHook(hook, entity, target));
            }
            return(null);
        }
Beispiel #2
0
 void OnEntitySpawned(BaseNetworkable entity)
 {
     if (entity.GetType() == typeof(BaseHelicopter))
     {
         if (!allowedEntities.Contains((BaseEntity)entity) && heliEnabled == false)
         {
             entity.Kill();
         }
     }
 }
Beispiel #3
0
        /// <summary>
        /// ON ENTITY TYPE SPAWNED
        /// </summary>
        /// <param name="entity">Entity.</param>
        void OnEntitySpawned(BaseNetworkable entity)
        {
            var type = entity.GetType();

            string hook;

            if (TryGetHook(type, spawnableTypes, out hook))
            {
                Interface.CallHook(hook, entity);
            }
        }
Beispiel #4
0
        void OnEntitySpawned(BaseNetworkable entity)
        {
            //Puts(entity.GetType().ToString());
            if (entity.GetType() == typeof(DroppedItem))
            {
                DroppedItem item = (DroppedItem)(entity);
                //Puts(item.gameObject);
                //Puts(BasePlayer.activePlayerList[0].GetActiveItem()?.info.worldModelPrefab.resourcePath.ToString());
            }

            //Puts("OnEntitySpawned works!");
        }
Beispiel #5
0
        void OnEntityKill(BaseNetworkable entity)
        {
            if (entity.GetType().ToString().Equals("Bear"))
            {
                string key = entity.ToString();
                if (hitlist.ContainsKey(key))
                {
                    Broadcast(entity.GetType().ToString());

                    string kill_key = hitlist[key];;
                    if (killList.ContainsKey(kill_key))
                    {
                        killList[kill_key] += 1;
                    }
                    else
                    {
                        killList.Add(kill_key, 1);
                        PlayerLogic.findPlayer(kill_key, players).addKill();
                    }
                    Broadcast("Bear was killed by {0}, He already killed {1} Bears", kill_key, killList[kill_key]);
                }
            }
        }
Beispiel #6
0
 object CanNetworkTo(BaseNetworkable entity, BasePlayer player)
 {
     if (entity.GetType() == typeof(BasePlayer)) //Trying to network one player to another player
     {
         BasePlayer targetPlayer = (BasePlayer)entity;
         if (customData.ContainsKey(targetPlayer.userID))
         {
             PlayerCulling culling = customData[player.userID].playerCull;
             //Write(string.Format("testing ShouldNetwork: {1} --> {0} : {2}", player.displayName, targetPlayer.displayName, culling.ShouldShow(targetPlayer).ToString()));
             return(true);
             //return culling.ShouldShow(targetPlayer);
         }
     }
     return(null);
 }
Beispiel #7
0
 bool ShouldNetworkBuildingItem(BaseEntity entity, BasePlayer player)
 {
     if (entity != null)
     {
         int             loopCount = 0;
         BaseNetworkable parent    = BaseNetworkable.serverEntities.Find(entity.parentEntity.uid);
         while (loopCount <= maxStackedItems)
         {
             loopCount++;//In real rust, each entity would have reference to main parent, instead of this loop. Maybe a bool to say if it is a floor / foundation.
             if (parent != null)
             {
                 if (parent.GetType() == typeof(BaseEntity))
                 {
                     BaseNetworkable newParent = BaseNetworkable.serverEntities.Find(((BaseEntity)parent).parentEntity.uid);
                     {
                         parent = newParent;
                         continue;
                     }
                 }
                 //We have reached main parent
                 if (IsBuildingBlock(parent))
                 {
                     BuildingBlock buildingBlock = (BuildingBlock)parent;
                     if (floorPrefabNames.Contains(buildingBlock.blockDefinition.hierachyName))
                     {
                         if (individualRooms.ContainsKey(buildingBlock.net.ID))
                         {
                             return(false);
                         }
                     }
                 }
             }
         }
     }
     return(true);
 }
Beispiel #8
0
 bool IsBuildingBlock(BaseNetworkable entity)
 {
     return(entity.GetType() == typeof(BuildingBlock));
 }