From 4adec24c3a2a53f518d817ae8a6ddd0c4c47422c Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Wed, 25 May 2016 22:06:26 -0400 Subject: more work on the structure system --- gamemode/server/admin_commands.lua | 10 +++++++--- gamemode/server/player_functions.lua | 3 --- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'gamemode/server') diff --git a/gamemode/server/admin_commands.lua b/gamemode/server/admin_commands.lua index 284792c..d21c884 100644 --- a/gamemode/server/admin_commands.lua +++ b/gamemode/server/admin_commands.lua @@ -1,7 +1,11 @@ concommand.Add( "gms_admin_maketree", function( ply ) if ( IsValid( ply ) && !ply:IsAdmin() ) then ply:SendMessage( "You need admin rights for this!", 3, Color( 200, 0, 0, 255 ) ) return end local tr = ply:TraceFromEyes( 10000 ) - GAMEMODE.MakeTree( tr.HitPos ) + local ent = ents.Create( "gms_tree" ) + ent:SetPos( tr.HitPos ) + ent:Spawn() + ent.GMSAutoSpawned = true + ent:SetNWString( "Owner", "World" ) end ) concommand.Add( "gms_admin_makerock", function( ply ) @@ -28,7 +32,7 @@ concommand.Add( "gms_admin_makeantlionbarrow", function( ply, cmd, args ) local ent = ents.Create( "gms_antlionbarrow" ) ent:SetPos( tr.HitPos ) ent:Spawn() - ent:SetNetworkedString( "Owner", "World" ) + ent:SetNWString( "Owner", "World" ) ent:SetKeyValue( "MaxAntlions", args[1] ) end ) @@ -132,7 +136,7 @@ concommand.Add( "gms_admin_populatearea", function( ply, cmd, args ) ent:SetModel( GMS.RockModels[math.random( 1, #GMS.RockModels )] ) ent:SetPos( groundtrace.HitPos ) ent:Spawn() - ent:SetNetworkedString( "Owner", "World" ) + ent:SetNWString( "Owner", "World" ) ent:Fadein() ent.PhysgunDisabled = true ent:GetPhysicsObject():EnableMotion( false ) diff --git a/gamemode/server/player_functions.lua b/gamemode/server/player_functions.lua index 561a618..4da63c8 100644 --- a/gamemode/server/player_functions.lua +++ b/gamemode/server/player_functions.lua @@ -143,12 +143,9 @@ end util.AddNetworkString( "gms_SetResource" ) function PlayerMeta:SetResource( resource, int ) - print("SetResource called!") if(isstring(resource)) then resource = GMS.GetResourceByName(resource) end - PrintTable(resource) - print(int) --if ( !self.Resources[resource] ) then self.Resources[resource] = 0 end -- cgit v1.2.3-70-g09d2 From fd04cb695e1c0e6597456f2b1b7b076310fd81bf Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Wed, 25 May 2016 22:39:23 -0400 Subject: Finished the basics of the new structure system --- gamemode/itemsystem/common.lua | 2 +- gamemode/server/player_functions.lua | 4 ---- gamemode/structuresystem/common_smelt.lua | 31 ++++++++++++++++--------------- 3 files changed, 17 insertions(+), 20 deletions(-) (limited to 'gamemode/server') diff --git a/gamemode/itemsystem/common.lua b/gamemode/itemsystem/common.lua index edaac31..37ae388 100644 --- a/gamemode/itemsystem/common.lua +++ b/gamemode/itemsystem/common.lua @@ -1,7 +1,7 @@ --This file holds a bunch of common functions that happen in items. They're seperated out here so that they're easy to change if there's a bug somewhere. --[[ Provides: - startProcessGeneric(player_player, string_message, number_time, function_ondone) + startProcessGeneric(player_player, string_message, number_time, function_ondone(player_player)) Freezes the player, creates the loading bar, and calls ondone when the timer is up. ]] diff --git a/gamemode/server/player_functions.lua b/gamemode/server/player_functions.lua index 4da63c8..854e649 100644 --- a/gamemode/server/player_functions.lua +++ b/gamemode/server/player_functions.lua @@ -183,10 +183,6 @@ function PlayerMeta:IncResource( resource, int ) if ( !self.Resources[resource] ) then self.Resources[resource] = 0 end local all = self:GetAllResources() local max = self.MaxResources - print("When adding resources, max resource is:") - print(max) - print("All is:") - print(all) if ( all + int > max ) then self.Resources[resource] = self.Resources[resource] + ( max - all ) diff --git a/gamemode/structuresystem/common_smelt.lua b/gamemode/structuresystem/common_smelt.lua index bb34331..43637e1 100644 --- a/gamemode/structuresystem/common_smelt.lua +++ b/gamemode/structuresystem/common_smelt.lua @@ -6,7 +6,6 @@ function genericMakeFurnace(tbl) local oldusefunc = tbl.onUse local overrideuse = function(self, ply) if SERVER or ply != LocalPlayer() then return end - print("I am the local player!") local DermaPanel = vgui.Create( "DFrame" ) DermaPanel:SetPos( 100, 100 ) DermaPanel:SetSize( ScrW() / 1.3, ScrH() / 1.4 ) @@ -24,7 +23,7 @@ function genericMakeFurnace(tbl) testbut.DoClick = function(button) net.Start("makerecipe") net.WriteString(tbl.Name) - if(tbl.uniquedata) then net.WriteUInt(self:EntIndex(), GMS.NETINT_BITCOUNT) end + if tbl.uniquedata then net.WriteUInt(self:EntIndex(), GMS.NETINT_BITCOUNT) end net.WriteUInt(k, GMS.NETINT_BITCOUNT) net.SendToServer() end @@ -38,34 +37,36 @@ end net.Receive( "makerecipe", function(ln,ply) local tblname = net.ReadString() local tbl = GMS.Structures[tblname] - print("Table is:") - PrintTable(tbl) - print("Recipes table is:") - PrintTable(tbl.Recipes) assert(tbl != nil,"Maybe someone's trying to hack lol") if tbl.uniquedata then local entnum = net.ReadUInt(GMS.NETINT_BITCOUNT) tbl = GMS.UniqueStructures[entnum] end local recipenum = net.ReadUInt(GMS.NETINT_BITCOUNT) - print("Useing recipes:") - PrintTable(tbl.Recipes) - print("And recipenum:") - PrintTable(tbl.Recipes[recipenum]) assert(tbl.Recipes != nil and tbl.Recipes[recipenum] != nil, "Invalid recpie!") - print("Attempting to craft recpie:") - PrintTable(tbl.Recipes[recipenum]) local recipe = tbl.Recipes[recipenum] local numrequired = 1 for k, v in pairs( recipe.Req ) do numrequired = numrequired + v - print("numrequired is now:" .. numrequired) end local time = math.pow(numrequired,tbl.timemult) - ((numrequired * tbl.timemult) * math.pow(ply:GetSkill("Smelting"),tbl.skillease)) time = time * numrequired / 5 - --time = math.max( time - math.floor( ply:GetSkill( "Smelting" ) / 5 ), math.max( timecount * tbl.skillease, 2 ) ) - print("I think smelting this should take " .. time .. " seconds") + for k,v in pairs(recipe.Req) do + if ply:GetResource(k) < v then + ply:SendMessage("You don't have enough!", 3, Color(255, 255, 255, 255)) + return + end + end + --We have enough resources! make it! + startProcessGeneric(ply,"Crafting " .. recipe.Name, time, function(player) + for k,v in pairs(recipe.Results) do + player:IncResource(k,v) + end + for k,v in pairs(recipe.Req) do + ply:DecResource(k,v) + end + end) end) -- cgit v1.2.3-70-g09d2