Added IceTile system.
This commit is contained in:
parent
efee7caed2
commit
11802f2a13
3 changed files with 163 additions and 49 deletions
90
Build/TerrariaServer.XML
Normal file
90
Build/TerrariaServer.XML
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>TerrariaServer</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:TShock.Hooks.IHooks">
|
||||||
|
<summary>
|
||||||
|
Hooks interface
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:TShock.IGame.Players">
|
||||||
|
<summary>
|
||||||
|
List of players
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:TShock.HandlerList">
|
||||||
|
<summary>
|
||||||
|
See generic HandlerList
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:TShock.HandlerList`1">
|
||||||
|
<summary>
|
||||||
|
Works like an event. Allows for registering delegates with a higher or lower priority.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.HandlerList`1.Register(System.EventHandler{`0},TShock.HandlerPriority,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Register a handler
|
||||||
|
</summary>
|
||||||
|
<param name="handler">Delegate to be called</param>
|
||||||
|
<param name="priority">Priority of the delegate</param>
|
||||||
|
<param name="gethandled">Should the handler receive a call even if it has been handled</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.IPlayer.Damage(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
Attempts to damage the player.
|
||||||
|
</summary>
|
||||||
|
<param name="amt">int - how much damage to give</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.IPlayer.SendMessage(System.String,Color)">
|
||||||
|
<summary>
|
||||||
|
Sends message to specified player
|
||||||
|
</summary>
|
||||||
|
<param name="msg">string - text to send</param>
|
||||||
|
<param name="color">Color - color for the text</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:TShock.IPlayer.Id">
|
||||||
|
<summary>
|
||||||
|
Meant to only be used by TServer.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:TShock.IPlayer.Name">
|
||||||
|
<summary>
|
||||||
|
The character name of the player.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.Plugin.CreateInterfaces">
|
||||||
|
<summary>
|
||||||
|
Return a list of interfaces this plugin exposes.
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.Plugin.SetInterfaces(System.Collections.Generic.IEnumerable{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Called before initialize passing all the interfaces gathered from plugins
|
||||||
|
</summary>
|
||||||
|
<param name="interfaces"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:TShock.Plugin.GetInterface``1(System.Collections.Generic.IEnumerable{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Gets the T interface from the collection. Returns null if its not found.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="interfaces"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:TShock.Hooks.Player.PlayerHooks.Join">
|
||||||
|
<summary>
|
||||||
|
Called when the player first connects. They are not fully in the game yet, for that see Greet.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:TShock.Hooks.Player.PlayerHooks.Greet">
|
||||||
|
<summary>
|
||||||
|
Called when the player is actually loaded into the game.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
|
|
@ -75,6 +75,8 @@ namespace TShockAPI
|
||||||
public PlayerData PlayerData;
|
public PlayerData PlayerData;
|
||||||
public bool RequiresPassword;
|
public bool RequiresPassword;
|
||||||
public bool SilentKickInProgress;
|
public bool SilentKickInProgress;
|
||||||
|
public List<Point> IceTiles { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool RealPlayer
|
public bool RealPlayer
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1088,11 +1088,33 @@ namespace TShockAPI
|
||||||
|
|
||||||
public static bool CheckTilePermission( TSPlayer player, int tileX, int tileY, byte tileType )
|
public static bool CheckTilePermission( TSPlayer player, int tileX, int tileY, byte tileType )
|
||||||
{
|
{
|
||||||
if (!player.Group.HasPermission(Permissions.canbuild) && !(TShock.Config.AllowIce && tileType == 127) )
|
if (!player.Group.HasPermission(Permissions.canbuild))
|
||||||
|
{
|
||||||
|
if (TShock.Config.AllowIce && tileType == 0)
|
||||||
|
{
|
||||||
|
foreach (Point p in player.IceTiles)
|
||||||
|
{
|
||||||
|
if (p.X == tileX)
|
||||||
|
{
|
||||||
|
if (p.Y == tileY)
|
||||||
|
{
|
||||||
|
player.IceTiles.Remove(p);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TShock.Config.AllowIce && tileType == 127)
|
||||||
|
{
|
||||||
|
player.IceTiles.Add(new Point(tileX, tileY));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
player.SendMessage("You do not have permission to build!", Color.Red);
|
player.SendMessage("You do not have permission to build!", Color.Red);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!player.Group.HasPermission(Permissions.editspawn) && !Regions.CanBuild(tileX, tileY, player) &&
|
if (!player.Group.HasPermission(Permissions.editspawn) && !Regions.CanBuild(tileX, tileY, player) &&
|
||||||
Regions.InArea(tileX, tileY))
|
Regions.InArea(tileX, tileY))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue