From 5c4ebc932d8c02522802c842d43d863d89aca162 Mon Sep 17 00:00:00 2001 From: Apickx Date: Mon, 28 Dec 2015 19:10:44 -0500 Subject: Initial commit --- gamemode/itemsystem/items/shack.lua | 111 ++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 gamemode/itemsystem/items/shack.lua (limited to 'gamemode/itemsystem/items/shack.lua') diff --git a/gamemode/itemsystem/items/shack.lua b/gamemode/itemsystem/items/shack.lua new file mode 100644 index 0000000..f66fe38 --- /dev/null +++ b/gamemode/itemsystem/items/shack.lua @@ -0,0 +1,111 @@ + +ITEM.Name = "Shack" +ITEM.Class = "structure" +ITEM.Desc = "An actual building... how convenient." +ITEM.Model = "models/props_debris/wood_board07a.mdl" +ITEM.Icon = Material("settlement/icon_shack") +ITEM.Recipe = { + Resources = { + ["Tent"] = 1, + ["Log"] = 1, + ["Rope"] = 1, + ["Stoneblock"] = 1, + }, + Tools = { + ["Crystal Hammer"] = 1, + }, +} + +ITEM.Structure = { + { + Bone = "ValveBiped.Bip01_R_Hand", + Model = "models/props_junk/Rock001a.mdl", + Size = Vector(0.5,0.5,0.5), + Pos = Vector(4,-3,-1), + Ang = Angle(0,0,0), + }, +} + +ITEM.Ghost = { + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(0,30,130), + Ang = Angle(0,0,45), + }, + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(0,-30,130), + Ang = Angle(0,180,45), + }, + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(0,-55,40), + Ang = Angle(0,0,0), + }, + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(-55,0,40), + Ang = Angle(0,90,0), + }, + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(0,55,40), + Ang = Angle(0,180,0), + }, + { + Model = "models/props_wasteland/wood_fence02a.mdl", + Size = Vector(1,1,1), + Pos = Vector(55,27,40), + Ang = Angle(0,270,0), + }, + { + Model = "models/props_wasteland/wood_fence01a.mdl", + Size = Vector(1,1,1), + Pos = Vector(0,0,100), + Ang = Angle(0,0,90), + }, +} + +ITEM.Range = 300 +ITEM.CD = 0.5 + +function ITEM:OnPrimary(pl,tr) + if (CLIENT) then return end + + if (!pl:CanPlaceStructure(tr)) then pl:GhostStructure(self.Name) return end + + if (tr.Hit) then + local Ang = Angle(0,pl:GetAimVector():Angle().y+90,0) + local Pos = tr.HitPos + + for k,v in pairs(self.Ghost) do + local Off = v.Pos*1 + Off:Rotate(Ang) + + local Roa = Ang*1 + + Roa:RotateAroundAxis(Ang:Right(),v.Ang.p) + Roa:RotateAroundAxis(Ang:Forward(),v.Ang.r) + Roa:RotateAroundAxis(Ang:Up(),v.Ang.y) + + local drop = ents.Create("ws_prop") + drop:SetModel(v.Model) + drop:SetAngles(Roa) + drop:SetPos(Pos+Off) + drop:Spawn() + drop:Activate() + end + + if (pl:HasItem(self.Name)) then pl:RemoveItem(self.Name,1) + else pl:UnEquipWeaponSlot(pl.Select,true) end + + pl:GhostRemove() + else + pl:EmitSound(Sound("weapons/iceaxe/iceaxe_swing1.wav"),100,math.random(90,110)) + end +end -- cgit v1.2.3-70-g09d2