diff --git a/Maps/default.vsmf b/Maps/default.vsmf index c879d2a..c56851b 100644 --- a/Maps/default.vsmf +++ b/Maps/default.vsmf @@ -1,6 +1,6 @@ name=default size=1920.1080 id=001 -statics=house1.100.1080,house2.500.1080 +statics=house1.100.1080.100,house2.500.1080.200 interactables= -objects=bat.1000.1080.50 \ No newline at end of file +objects=bat.1000.1080.50,chair.300.1080.35,tree.1400.1080.100 \ No newline at end of file diff --git a/world.lua b/world.lua index 42f023f..ec13fef 100644 --- a/world.lua +++ b/world.lua @@ -1,57 +1,88 @@ World = { currentMap = nil, + generators = {} map = {} } function World.loadMap(name) local path = ("maps/"..tostring(name)..".vsmf") - --path = ("world.txt") + local line_num = 1 + for line in love.filesystem.lines(path) do line = tostring(line) print ("Itterating line: " .. line) local hasPassedEqual = false local command = "" - local args = {""} - local i = 1 + local args = {} + local B = 1 + local A = 1 for character in string.gmatch(line, '.') do print ("Itterating character: " .. character) if hasPassedEqual == true then if character == "." then - i = i + 1 + B = B + 1 + elseif character == "," then + A = A + 1 + B = 1 else - if args [i] == nil then - args[i] = character + if args[A] == nil then + args[A] = {} + args[A][B] = tostring(character) + print("Started arg. char. " .. args[A][B]) + elseif args[A][B] == nil then + args[A][B] = tostring(character) + print("Started arg. char. " .. args[A][B] .. " (With whole pretext)") else - args[i] = args[i] .. character + args[A][B] = args[A][B] .. tostring(character) + print ("Argument " .. A .. ":" .. B .. " is now at: " .. args[A][B]) end - end + end elseif character == "=" then hasPassedEqual = true + print ("Passed Equal At: " .. character) else command = command .. character + print ("Command is now at: " .. command) end end - print (command .. " " .. args[1] .. "\n") - for x = 1, #args do - if x == 1 then - World.map[command] = {} - World.map[command][args[1]] = {} - World.map[command].catalogue = {} - table.insert(World.map[command].catalogue, args[1]) - print ("Put " .. args[1] .. " in " .. command) - else - World.map[command][args[1]][x - 1] = args[x] - print ("Added " .. args[x] .. " to " .. args[1] .. " at " .. x-1) + if args[A] ~= nil then + for x=1, A do + for y=1, B do + print (command .. ": " .. args[x][y] .. "\n") + end + end + World.map[command] = {} + for x = 1, A do + World.map[command][x] = {} + print ("Wrote ".. command .. " at " .. x .. " successfully") + for y = 1, B do + World.map[command][x][y] = args[x][y] + print ("Added " .. args[x][y] .. " to " .. command .. " at " .. x .. ":".. y) + end end end end + if World.map.name[1] then + print "Name Success" + end + if World.map.size[1] then + print "Map Success" + end + if World.map.id[1] then + print "ID Success" + end + print("Map has loaded successfully! Loaded with parameters: " .. World.map.name[1][1] .. ", " .. World.map.size[1][1] .. " " .. World.map.size[1][2] .. ", " .. World.map.id[1][1]) + print("Attempting hitbox generation...") + if World.map.objects then + World.generators.hitboxes("objects") + end end function World.drawMap() if World.map.objects then - for i = 1, #World.map.objects.catalogue do - love.graphics.circle("line", World.map.objects[World.map.objects.catalogue[i]][1], World.map.objects[World.map.objects.catalogue[i]][2] - World.map.objects[World.map.objects.catalogue[i]][3], World.map.objects[World.map.objects.catalogue[i]][3]) + for i=1, #World.map.objects do + love.graphics.circle("line", World.map.objects[i][2], World.map.objects[i][3] - World.map.objects[i][4], World.map.objects[i][4]) end end end \ No newline at end of file