Removed MagicCarpet
This commit is contained in:
parent
ccbd5ba6a2
commit
27e69f32c6
|
@ -1,97 +0,0 @@
|
||||||
-- Location object
|
|
||||||
cLocation = {}
|
|
||||||
function cLocation:new( x, y, z )
|
|
||||||
local object = { x = x, y = y, z = z }
|
|
||||||
setmetatable(object, { __index = cLocation })
|
|
||||||
return object
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Offsets
|
|
||||||
cFibers = { }
|
|
||||||
function cFibers:new()
|
|
||||||
local object = {
|
|
||||||
cLocation:new( 2, -1, 2 ),
|
|
||||||
cLocation:new( 2, -1, 1 ),
|
|
||||||
cLocation:new( 2, -1, 0 ),
|
|
||||||
cLocation:new( 2, -1, -1 ),
|
|
||||||
cLocation:new( 2, -1, -2 ),
|
|
||||||
cLocation:new( 1, -1, 2 ),
|
|
||||||
cLocation:new( 1, -1, 1 ),
|
|
||||||
cLocation:new( 1, -1, 0 ),
|
|
||||||
cLocation:new( 1, -1, -1 ),
|
|
||||||
cLocation:new( 1, -1, -2 ),
|
|
||||||
cLocation:new( 0, -1, 2 ),
|
|
||||||
cLocation:new( 0, -1, 1 ),
|
|
||||||
cLocation:new( 0, -1, 0 ),
|
|
||||||
cLocation:new( 0, -1, -1 ),
|
|
||||||
cLocation:new( 0, -1, -2 ),
|
|
||||||
cLocation:new( -1, -1, 2 ),
|
|
||||||
cLocation:new( -1, -1, 1 ),
|
|
||||||
cLocation:new( -1, -1, 0 ),
|
|
||||||
cLocation:new( -1, -1, -1 ),
|
|
||||||
cLocation:new( -1, -1, -2 ),
|
|
||||||
cLocation:new( -2, -1, 2 ),
|
|
||||||
cLocation:new( -2, -1, 1 ),
|
|
||||||
cLocation:new( -2, -1, 0 ),
|
|
||||||
cLocation:new( -2, -1, -1 ),
|
|
||||||
cLocation:new( -2, -1, -2 ),
|
|
||||||
imadeit = false,
|
|
||||||
}
|
|
||||||
setmetatable(object, { __index = cFibers })
|
|
||||||
return object;
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Carpet object
|
|
||||||
cCarpet = {}
|
|
||||||
function cCarpet:new()
|
|
||||||
local object = { Location = cLocation:new(0,0,0),
|
|
||||||
Fibers = cFibers:new(),
|
|
||||||
}
|
|
||||||
setmetatable(object, { __index = cCarpet })
|
|
||||||
return object
|
|
||||||
end
|
|
||||||
|
|
||||||
function cCarpet:remove()
|
|
||||||
local World = cRoot:Get():GetDefaultWorld()
|
|
||||||
for i, fib in ipairs( self.Fibers ) do
|
|
||||||
local x = self.Location.x + fib.x
|
|
||||||
local y = self.Location.y + fib.y
|
|
||||||
local z = self.Location.z + fib.z
|
|
||||||
local BlockID = World:GetBlock( x, y, z )
|
|
||||||
if( fib.imadeit == true and BlockID == E_BLOCK_GLASS ) then
|
|
||||||
World:SetBlock( x, y, z, 0, 0 )
|
|
||||||
fib.imadeit = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function cCarpet:draw()
|
|
||||||
local World = cRoot:Get():GetDefaultWorld()
|
|
||||||
for i, fib in ipairs( self.Fibers ) do
|
|
||||||
local x = self.Location.x + fib.x
|
|
||||||
local y = self.Location.y + fib.y
|
|
||||||
local z = self.Location.z + fib.z
|
|
||||||
local BlockID = World:GetBlock( x, y, z )
|
|
||||||
if( BlockID == 0 ) then
|
|
||||||
fib.imadeit = true
|
|
||||||
World:SetBlock( x, y, z, E_BLOCK_GLASS, 0 )
|
|
||||||
else
|
|
||||||
fib.imadeit = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function cCarpet:moveTo( NewPos )
|
|
||||||
local x = math.floor( NewPos.x )
|
|
||||||
local y = math.floor( NewPos.y )
|
|
||||||
local z = math.floor( NewPos.z )
|
|
||||||
if( self.Location.x ~= x or self.Location.y ~= y or self.Location.z ~= z ) then
|
|
||||||
self:remove()
|
|
||||||
self.Location = cLocation:new( x, y, z )
|
|
||||||
self:draw()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function cCarpet:getY()
|
|
||||||
return self.Location.y
|
|
||||||
end
|
|
|
@ -1,81 +0,0 @@
|
||||||
local Carpets = {}
|
|
||||||
local PLUGIN
|
|
||||||
|
|
||||||
function Initialize( Plugin )
|
|
||||||
Plugin:SetName( "MagicCarpet" )
|
|
||||||
Plugin:SetVersion( 2 )
|
|
||||||
|
|
||||||
cPluginManager.AddHook(cPluginManager.HOOK_PLAYER_MOVING, OnPlayerMoving)
|
|
||||||
cPluginManager.AddHook(cPluginManager.HOOK_PLAYER_DESTROYED, OnDisconnect)
|
|
||||||
|
|
||||||
local PluginManager = cPluginManager:Get()
|
|
||||||
PluginManager:BindCommand("/mc", "magiccarpet", HandleCarpetCommand, " - Spawns a magical carpet");
|
|
||||||
|
|
||||||
PLUGIN = Plugin
|
|
||||||
|
|
||||||
LOG( "Initialised " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() )
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function OnDisable()
|
|
||||||
LOG( PLUGIN:GetName() .. " v." .. PLUGIN:GetVersion() .. " is shutting down..." )
|
|
||||||
for i, Carpet in pairs( Carpets ) do
|
|
||||||
Carpet:remove()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function HandleCarpetCommand( Split, Player )
|
|
||||||
Carpet = Carpets[ Player ]
|
|
||||||
|
|
||||||
if( Carpet == nil ) then
|
|
||||||
Carpets[ Player ] = cCarpet:new()
|
|
||||||
Player:SendMessageSuccess("You're on a magic carpet!")
|
|
||||||
Player:SendMessageInfo("Look straight down to descend. Jump to ascend.")
|
|
||||||
else
|
|
||||||
Carpet:remove()
|
|
||||||
Carpets[ Player ] = nil
|
|
||||||
Player:SendMessageSuccess("The carpet vanished!")
|
|
||||||
end
|
|
||||||
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function OnDisconnect( Reason, Player )
|
|
||||||
local Carpet = Carpets[ Player ]
|
|
||||||
if( Carpet ~= nil ) then
|
|
||||||
Carpet:remove()
|
|
||||||
end
|
|
||||||
Carpets[ Player ] = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function OnPlayerMoving(Player)
|
|
||||||
local Carpet = Carpets[ Player ]
|
|
||||||
if( Carpet == nil ) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if( Player:GetPitch() == 90 ) then
|
|
||||||
Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY() - 1, Player:GetPosZ() ) )
|
|
||||||
else
|
|
||||||
if( Player:GetPosY() < Carpet:getY() ) then
|
|
||||||
Player:TeleportToCoords(Player:GetPosX(), Carpet:getY() + 0.2, Player:GetPosZ())
|
|
||||||
end
|
|
||||||
Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) )
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue