Modding:World Access: Difference between revisions

From Vintage Story Wiki
no edit summary
No edit summary
No edit summary
(2 intermediate revisions by 2 users not shown)
Line 4: Line 4:


<syntaxhighlight lang="c#">
<syntaxhighlight lang="c#">
     public class SampleMod : ModBase
     public class SampleMod : ModSystem
     {
     {
         ICoreServerAPI api;
         ICoreServerAPI api;
Line 25: Line 25:
* during world generation we'd have to register to the [[WorldGen API|appropriate world gen events]].
* during world generation we'd have to register to the [[WorldGen API|appropriate world gen events]].
* when the player runs a custom command we need to register one: <code>api.RegisterCommand("test", "a test command", "", OnCommand);</code>
* when the player runs a custom command we need to register one: <code>api.RegisterCommand("test", "a test command", "", OnCommand);</code>
* when a player joins the game: <code>api.Event.PlayerJoin(OnPlayerJoin);</code>
* when a player joins the game: <code>api.Event.PlayerJoin += OnPlayerJoin;</code>


Let's register to the player join event.  
Let's register to the player join event.  
Line 33: Line 33:
         {
         {
             this.api = api;
             this.api = api;
             api.Event.PlayerJoin(OnPlayerJoin);
             api.Event.PlayerJoin += OnPlayerJoin;
         }
         }


Line 74: Line 74:


<syntaxhighlight lang="c#">
<syntaxhighlight lang="c#">
             // Check a 3x3x3 area for logs
             // Check a 7x7x7 area for logs
             int quantityLogs = 0;
             int quantityLogs = 0;
             for (int x = -3; x <= 3; x++)
             for (int x = -3; x <= 3; x++)
Line 120: Line 120:
             api.World.BlockAccessor.SetBlock(blockId, plrpos.DownCopy());
             api.World.BlockAccessor.SetBlock(blockId, plrpos.DownCopy());


             // Check a 3x3x3 area for logs
             // Check a 7x7x7 area for logs
             int quantityLogs = 0;
             int quantityLogs = 0;
             api.World.BlockAccessor.WalkBlocks(
             api.World.BlockAccessor.WalkBlocks(
Confirmedusers, Bureaucrats, editor, Administrators
1,778

edits