summaryrefslogtreecommitdiffstats
path: root/Plugins/MagicCarpet
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Plugins/MagicCarpet/objects.lua (renamed from Plugins/MagicCarpet.lua)78
-rw-r--r--Plugins/MagicCarpet/plugin.lua65
2 files changed, 68 insertions, 75 deletions
diff --git a/Plugins/MagicCarpet.lua b/Plugins/MagicCarpet/objects.lua
index 69ccd0d5c..30528cc42 100644
--- a/Plugins/MagicCarpet.lua
+++ b/Plugins/MagicCarpet/objects.lua
@@ -92,78 +92,6 @@ function cCarpet:moveTo( NewPos )
end
end
-
-MagicCarpetPlugin = {}
-MagicCarpetPlugin.__index = MagicCarpetPlugin
-
-function MagicCarpetPlugin:new()
- local t = {}
- setmetatable(t, MagicCarpetPlugin)
- local w = Lua__cPlugin:new()
- tolua.setpeer(w, t)
- w:tolua__set_instance(w)
- return w
-end
-
-function MagicCarpetPlugin:Initialize()
- self:SetName( "MagicCarpet" )
- self:SetVersion( 1 )
-
- PluginManager = cRoot:Get():GetPluginManager()
- PluginManager:AddHook( self, cPluginManager.E_PLUGIN_PLAYER_MOVE)
- PluginManager:AddHook( self, cPluginManager.E_PLUGIN_DISCONNECT)
-
- self:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet")
- self:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand )
-
- self.Carpets = {}
-
- Log( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() )
- return true
-end
-
-function MagicCarpetPlugin:OnDisable()
- Log( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." )
- for i, Carpet in pairs( self.Carpets ) do
- Carpet:remove()
- end
-end
-
-function HandleCarpetCommand( Split, Player )
- Carpet = self.Carpets[ Player ]
- if( Carpet == nil ) then
- self.Carpets[ Player ] = cCarpet:new()
- Player:SendMessage("You're on a magic carpet!" )
- else
- Carpet:remove()
- self.Carpets[ Player ] = nil
- Player:SendMessage("The carpet vanished!" )
- end
-
- return true
-end
-
-function MagicCarpetPlugin:OnDisconnect( Reason, Player )
- local Carpet = self.Carpets[ Player ]
- if( Carpet ~= nil ) then
- Carpet:remove()
- end
- self.Carpets[ Player ] = nil
-end
-
-function MagicCarpetPlugin:OnPlayerMove( Player )
- local Carpet = self.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
- Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) )
- end
-end
-
-Plugin = MagicCarpetPlugin:new()
-cRoot:Get():GetPluginManager():AddPlugin( Plugin )
-
+function cCarpet:getY()
+ return self.Location.y
+end \ No newline at end of file
diff --git a/Plugins/MagicCarpet/plugin.lua b/Plugins/MagicCarpet/plugin.lua
new file mode 100644
index 000000000..22604c9d9
--- /dev/null
+++ b/Plugins/MagicCarpet/plugin.lua
@@ -0,0 +1,65 @@
+local PLUGIN = {}
+local Carpets = {}
+
+function Initialize( Plugin )
+ PLUGIN = Plugin
+
+ Plugin:SetName( "MagicCarpet" )
+ Plugin:SetVersion( 1 )
+
+ PluginManager = cRoot:Get():GetPluginManager()
+ PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_PLAYER_MOVE)
+ PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_DISCONNECT)
+
+ Plugin:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet")
+ Plugin:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand )
+
+ Log( "Initialized " .. 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:SendMessage("You're on a magic carpet!" )
+ else
+ Carpet:remove()
+ Carpets[ Player ] = nil
+ Player:SendMessage("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 OnPlayerMove( 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
+ LOGINFO("Fell tru mc!")
+ Player:TeleportTo( Player:GetPosX(), Carpet:getY(), Player:GetPosZ() )
+ end
+ Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) )
+ end
+end \ No newline at end of file