/// <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); }
void OnEntitySpawned(BaseNetworkable entity) { if (entity.GetType() == typeof(BaseHelicopter)) { if (!allowedEntities.Contains((BaseEntity)entity) && heliEnabled == false) { entity.Kill(); } } }
/// <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); } }
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!"); }
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]); } } }
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); }
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); }
bool IsBuildingBlock(BaseNetworkable entity) { return(entity.GetType() == typeof(BuildingBlock)); }