From 290ab0b588a13cedceac6cdaa33e7e67969b20b2 Mon Sep 17 00:00:00 2001 From: "nielsbreu@gmail.com" Date: Sun, 30 Jun 2013 19:14:22 +0000 Subject: The LimitWorlds function now uses cCuboid git-svn-id: http://mc-server.googlecode.com/svn/trunk@1633 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- MCServer/Plugins/Core/main.lua | 15 ++++++++++++--- MCServer/Plugins/Core/onchunkgenerating.lua | 13 ++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/MCServer/Plugins/Core/main.lua b/MCServer/Plugins/Core/main.lua index 1f24e0715..fa67dc977 100644 --- a/MCServer/Plugins/Core/main.lua +++ b/MCServer/Plugins/Core/main.lua @@ -10,7 +10,7 @@ WhiteListIni = {} X = {} Y = {} Z = {} - +LimitWorldsCuboid = {} @@ -19,7 +19,7 @@ function Initialize(Plugin) PLUGIN = Plugin Plugin:SetName("Core") - Plugin:SetVersion(12) + Plugin:SetVersion(13) PluginManager = cRoot:Get():GetPluginManager() PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_JOINED) @@ -68,10 +68,19 @@ function Initialize(Plugin) if ( IniFile:ReadFile() == true ) then HardCore = IniFile:GetValueSet("GameMode", "Hardcore", "false") LimitWorld = IniFile:GetValueSetB("Worlds", "LimitWorld", true) - LimitWorldWidth = IniFile:GetValueSetI("Worlds", "LimitWorldWidth", 200) + LimitWorldWidth = IniFile:GetValueSetI("Worlds", "LimitWorldWidth", 10) SHOW_PLUGIN_NAMES = IniFile:GetValueSetB("HelpPlugin", "ShowPluginNames", true ) + IniFile:WriteFile() end + cRoot:Get():ForEachWorld( + function( World ) + LimitWorldsCuboid[World:GetName()] = cCuboid() + LimitWorldsCuboid[World:GetName()].p1 = Vector3i( math.floor(World:GetSpawnX() / 16) + LimitWorldWidth, 0, math.floor(World:GetSpawnZ() / 16) + LimitWorldWidth) + LimitWorldsCuboid[World:GetName()].p2 = Vector3i( math.floor(World:GetSpawnX() / 16) - LimitWorldWidth, 256, math.floor(World:GetSpawnZ() / 16) - LimitWorldWidth) + LimitWorldsCuboid[World:GetName()]:Sort() + end + ) -- Load whitelist, and add default values and stuff WhiteListIni = cIniFile( Plugin:GetLocalDirectory() .. "/whitelist.ini" ) if ( WhiteListIni:ReadFile() == true ) then diff --git a/MCServer/Plugins/Core/onchunkgenerating.lua b/MCServer/Plugins/Core/onchunkgenerating.lua index 4c97329bd..44a6cf298 100644 --- a/MCServer/Plugins/Core/onchunkgenerating.lua +++ b/MCServer/Plugins/Core/onchunkgenerating.lua @@ -1,17 +1,12 @@ function OnChunkGenerating(World, ChunkX, ChunkZ, ChunkDesc) - if LimitWorld == true then - SpawnX = math.floor(World:GetSpawnX() / 16) - SpawnZ = math.floor(World:GetSpawnZ() / 16) - if ( (SpawnX + LimitWorldWidth) < ChunkX ) or ( (SpawnX - LimitWorldWidth) > ChunkX ) then - FillBlocks(World, ChunkX, ChunkZ, ChunkDesc) - end - if ( (SpawnZ + LimitWorldWidth) < ChunkZ ) or ( (SpawnZ - LimitWorldWidth) > ChunkZ ) then - FillBlocks(World, ChunkX, ChunkZ, ChunkDesc) + if (LimitWorld == true) then + if not LimitWorldsCuboid[World:GetName()]:IsInside( Vector3i(ChunkX, 128, ChunkZ) ) then + FillBlocks(ChunkDesc) end end end -function FillBlocks(World, ChunkX, ChunkZ, ChunkDesc) +function FillBlocks(ChunkDesc) ChunkDesc:FillBlocks(0,0) ChunkDesc:SetUseDefaultBiomes(false) ChunkDesc:SetUseDefaultHeight(false) -- cgit v1.2.3