so we fixed up some bugs and restructured the level editor. master fiel.

This commit is contained in:
0x81c 2015-03-25 03:58:37 -04:00 committed by Your Name
parent 01d272981e
commit b071e117fa
3 changed files with 55 additions and 28 deletions

View file

@ -18,6 +18,8 @@ local gameAssets = getAllAssets()
local inputText = ""
local assetProperties = {}
local hierarchy = {}
local activeField = nil --this is for whenwe are doing text input things
local uiButtons = {}
@ -33,7 +35,15 @@ function _initLevelEditor()
--create folder buttons
local counter = 1
for folder, object in pairs(gameAssets) do
for asset, attributes in pairs(gameAssets) do
if not hierarchy[gameAssets[asset].directory] then
hierarchy[gameAssets[asset].directory] = {}
end
table.insert(hierarchy[gameAssets[asset].directory], asset)
end
for folder, object in pairs(hierarchy) do
local button = createUIElement{
name = "folder",
text = folder,
@ -137,7 +147,7 @@ function selectFolder(folder)
local counter = 1
local limit = 10
for asset, colorArray in pairs(gameAssets[selectedFolder]) do
for _, asset in pairs(hierarchy[selectedFolder]) do
if counter % limit == 0 then
counter = 1
@ -163,7 +173,7 @@ function selectFolder(folder)
local sprites = {}
for color, location in pairs(colorArray) do
for color, location in pairs(gameAssets[asset].sprites) do
sprites[color] = love.graphics.newImage(location)
end
@ -195,18 +205,12 @@ function selectAsset(asset)
end
function editAsset(asset)
assetProperties = {
class = "",
}
inputText = ""
editorView = "asset"
selectedAsset = asset
local filename = "art/" .. selectedFolder .. "/" .. selectedAsset .. ".prop"
if love.filesystem.exists(filename) then
assetProperties = TSerial.unpack(love.filesystem.read(filename))
end
assetProperties = gameAssets[selectedAsset]
local cancelButton = createUIElement{
name = "cancel",
@ -237,9 +241,8 @@ function editAsset(asset)
editingAssetButtons[cancelButton] = cancelButton
editingAssetButtons[confirmButton] = confirmButton
local assetSprites = {}
for color, path in pairs(gameAssets[selectedFolder][selectedAsset]) do
for color, path in pairs(assetProperties.sprites) do
assetSprites[color] = love.graphics.newImage(path)
end
@ -268,14 +271,34 @@ function editAsset(asset)
}
}
local preloadLabel = {
draw = function() love.graphics.printf("preload", 0, 225, sideBarBox.w, "center") end
}
labels[preloadLabel] = preloadLabel
local preloadButton = createUIElement{
name = "preload",
text = tostring(assetProperties.preload),
x = 25,
y = 250,
onClic = {
left = function()
assetProperties.preload = not assetProperties.preload
end
}
}
editingAssetButtons[assetButton] = assetButton
editingAssetButtons.class = classButton
editingAssetButtons.preload = preloadButton
end
function saveAsset()
local save = TSerial.pack(assetProperties, nil, true)
diditdoit = love.filesystem.write("art/" .. selectedFolder .. "/" .. selectedAsset .. ".prop", save)
print("fdfdfdfd", diditdoit)
gameAssets[selectedAsset] = assetProperties
local save = TSerial.pack(gameAssets, nil, true)
love.filesystem.write("assets.prop", save)
assetsView()
end
@ -350,8 +373,9 @@ end
function editorCompleteResponse()
if editorView == "asset" then
assetProperties[activeField] = inputText
print(assetProperties[activeField], "BLELERLLLRLRLRR")
end
print(assetProperties[activeField], "ass")
print(activeField, assetProperties[activeField], "ass")
activeField = nil
end