summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins
diff options
context:
space:
mode:
authornielsbreu@gmail.com <nielsbreu@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-06-30 21:14:22 +0200
committernielsbreu@gmail.com <nielsbreu@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-06-30 21:14:22 +0200
commit290ab0b588a13cedceac6cdaa33e7e67969b20b2 (patch)
treebba78972be6e7218122d4cec4ccf05b9817c3bc7 /MCServer/Plugins
parentFixed crouch-placing unplaceable items (FS #399) (diff)
downloadcuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar.gz
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar.bz2
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar.lz
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar.xz
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.tar.zst
cuberite-290ab0b588a13cedceac6cdaa33e7e67969b20b2.zip
Diffstat (limited to 'MCServer/Plugins')
-rw-r--r--MCServer/Plugins/Core/main.lua15
-rw-r--r--MCServer/Plugins/Core/onchunkgenerating.lua13
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)