Skip to content
This repository has been archived by the owner on Jan 4, 2023. It is now read-only.

Commit

Permalink
Patches to OS and components to get Draw and Font tool working.
Browse files Browse the repository at this point in the history
  • Loading branch information
jessefreeman committed Mar 7, 2021
1 parent b3f7b8a commit 3771913
Show file tree
Hide file tree
Showing 214 changed files with 4,212 additions and 26,931 deletions.
18 changes: 14 additions & 4 deletions Disks/PixelVisionOS/System/Broken/DrawTool/code-canvas-panel.lua
Expand Up @@ -60,15 +60,20 @@ function DrawTool:CreateCanvas()

end

self.clearBackgroundPattern = {}
local clearBackgroundPattern = {}

local totalTiles = 128/8 * 128/8
local tileID = emptycolor.spriteIDs[1]
local tileID = MetaSprite(FindMetaSpriteId("emptycolor")).Sprites[1].Id

for i = 1, totalTiles do
table.insert(self.clearBackgroundPattern, tileID)
table.insert(clearBackgroundPattern, tileID)
end

self.clearBGPatterId = 250

-- TODO need to make sure this is an empty sprite
NewMetaSprite(250, "clearBackgroundPattern", clearBackgroundPattern, 128/8, 0)

end

local paletteKeys = {Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8}
Expand Down Expand Up @@ -174,14 +179,19 @@ function DrawTool:ClearCanvasPanelBackground()
-- print("Canvas BG Cleared")

-- Need to draw immediately since the canvas doesn't run through the UI draw queue
DrawSprites(self.clearBackgroundPattern, 4, 4, 16, false, false, DrawMode.Tile)
-- DrawSprites()

DrawMetaSprite(FindMetaSpriteId(self.clearBGPatterId), 4, 4, false, false, DrawMode.Tile)

self.canvasPanelBackgroundInvalid = false

end


function DrawTool:UpdateCanvas(value, flipH, flipV)

if(value == nil) then return end
print("value", value)
self:InvalidateCanvasPanelBackground()

flipH = flipH or false
Expand Down
Expand Up @@ -19,6 +19,7 @@ function EditColorModal:Init(editorUI, maskColor, title)
_editColorModal.title = title or "Edit Color"
_editColorModal.editorUI = editorUI
_editColorModal.maskColor = maskColor
_editColorModal.warningMetaSpriteId = FindMetaSpriteId("colorwarningicon")

_editColorModal:Configure()
-- _editColorModal.currentSelection = 1
Expand Down Expand Up @@ -310,8 +311,10 @@ function EditColorModal:Open()

self.canvas:DrawPixels(self.rect.x, self.rect.y, DrawMode.TilemapCache)

DrawSprites(coloreditorpanel.spriteIDs, self.rect.x + 8, self.rect.y + 16, coloreditorpanel.width, false, false, DrawMode.TilemapCache)
-- DrawSprites(coloreditorpanel.spriteIDs, self.rect.x + 8, self.rect.y + 16, coloreditorpanel.width, false, false, DrawMode.TilemapCache)

DrawMetaSprite(FindMetaSpriteId("coloreditorpanel"), self.rect.x + 8, self.rect.y + 16, false, false, DrawMode.TilemapCache)

-- Invalidate all of the UI buttons so they display correctly when re-opening the modal
for i = 1, #self.buttons do
editorUI:Invalidate(self.buttons[i])
Expand Down Expand Up @@ -362,22 +365,22 @@ function EditColorModal:ChangeColorMode(value)
self.greenInputData.max = 255
self.blueInputData.max = 255

DrawSprites(colorlabelred.spriteIDs, self.rect.x + 112, self.rect.y + 64, colorlabelred.width, false, false, DrawMode.TilemapCache)
DrawSprites(colorlabelgreen.spriteIDs, self.rect.x + 112, self.rect.y + 96, colorlabelgreen.width, false, false, DrawMode.TilemapCache)
DrawSprites(colorlabelblue.spriteIDs, self.rect.x + 112, self.rect.y + 128, colorlabelblue.width, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelred"), self.rect.x + 112, self.rect.y + 64, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelgreen"), self.rect.x + 112, self.rect.y + 96, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelblue"), self.rect.x + 112, self.rect.y + 128, false, false, DrawMode.TilemapCache)

DrawSprites(rgbcolorspace.spriteIDs, self.rect.x + 16, self.rect.y + 32, hsvcolorspace.width, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("rgbcolorspace"), self.rect.x + 16, self.rect.y + 32, false, false, DrawMode.TilemapCache)

else
self.redInputData.max = 100
self.greenInputData.max = 100
self.blueInputData.max = 100

DrawSprites(colorlabelhue.spriteIDs, self.rect.x + 112, self.rect.y + 64, colorlabelred.width, false, false, DrawMode.TilemapCache)
DrawSprites(colorlabelsaturation.spriteIDs, self.rect.x + 112, self.rect.y + 96, colorlabelsaturation.width, false, false, DrawMode.TilemapCache)
DrawSprites(colorlabelvalue.spriteIDs, self.rect.x + 112, self.rect.y + 128, colorlabelvalue.width, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelhue"), self.rect.x + 112, self.rect.y + 64, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelsaturation"), self.rect.x + 112, self.rect.y + 96, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("colorlabelvalue"), self.rect.x + 112, self.rect.y + 128, false, false, DrawMode.TilemapCache)

DrawSprites(hsvcolorspace.spriteIDs, self.rect.x + 16, self.rect.y + 32, hsvcolorspace.width, false, false, DrawMode.TilemapCache)
DrawMetaSprite(FindMetaSpriteId("hsvcolorspace"), self.rect.x + 16, self.rect.y + 32, false, false, DrawMode.TilemapCache)

end

Expand Down Expand Up @@ -609,7 +612,8 @@ end

function EditColorModal:Draw()
if(self.showWarning == true) then
DrawSprites(colorwarningicon.spriteIDs, self.rect.x + 124, self.rect.y + 35, colorwarningicon.width, false, false, DrawMode.Sprite)
-- DrawSprites(colorwarningicon.spriteIDs, self.rect.x + 124, self.rect.y + 35, colorwarningicon.width, false, false, DrawMode.Sprite)
DrawMetaSprite(self.warningMetaSpriteId, self.rect.x + 124, self.rect.y + 35)
end
end

59 changes: 42 additions & 17 deletions Disks/PixelVisionOS/System/Broken/DrawTool/code-color-panel.lua
Expand Up @@ -10,11 +10,11 @@

local colorPanelID = "ColorPanelUI"

-- Now we need to create the item picker over sprite by using the color selection spriteIDs and changing the color offset
_G["itempickerover"] = {spriteIDs = selection2x2over.spriteIDs, width = selection2x2over.width, colorOffset = 0}
-- -- Now we need to create the item picker over sprite by using the color selection spriteIDs and changing the color offset
-- _G["itempickerover"] = {spriteIDs = selection2x2over.spriteIDs, width = selection2x2over.width, colorOffset = 0}

-- Next we need to create the item picker selected up sprite by using the color selection spriteIDs and changing the color offset
_G["itempickerselectedup"] = {spriteIDs = selection2x2selected.spriteIDs, width = selection2x2selected.width, colorOffset = 0}
-- -- Next we need to create the item picker selected up sprite by using the color selection spriteIDs and changing the color offset
-- _G["itempickerselectedup"] = {spriteIDs = selection2x2selected.spriteIDs, width = selection2x2selected.width, colorOffset = 0}

function DrawTool:CreateColorPanel()

Expand All @@ -35,13 +35,9 @@ function DrawTool:CreateColorPanel()

self.bgDrawArgs =
{
bgflagicon.spriteIDs,
FindMetaSpriteId("bgflagicon"),
0,
0,
bgflagicon.width,
false,
false,
DrawMode.Sprite
0
}

self.systemColorPickerData.ctrlCopyEnabled = false
Expand Down Expand Up @@ -169,14 +165,14 @@ function DrawTool:CreateColorPanel()
local colorID = id + data.altColorOffset

if(Color(colorID) == self.maskColor) then
data.canvas.DrawSprites(emptymaskcolor.spriteIDs, x, y, emptymaskcolor.width, false, false)
data.canvas.DrawMetaSprite(FindMetaSpriteId("emptymaskcolor"), x, y)
else
data.canvas.Clear(colorID, x, y, data.itemSize.x, data.itemSize.y)
end

else

data.canvas.DrawSprites(emptycolor.spriteIDs, x, y, emptycolor.width, false, false)
data.canvas.DrawMetaSprite(FindMetaSpriteId("emptycolor"), x, y)

end

Expand Down Expand Up @@ -212,8 +208,16 @@ function DrawTool:ShowColorPanel()
pixelVisionOS:InvalidateItemPickerPageButton(self.systemColorPickerData)
-- TODO clear page area?

editorUI:NewDraw("DrawSprites", {pickerbottompageedge.spriteIDs, 20, 20, pickerbottompageedge.width, false, false, DrawMode.Tile})
-- editorUI:NewDraw("DrawSprites", {pickerbottompageedge.spriteIDs, 20, 20, pickerbottompageedge.width, false, false, DrawMode.Tile})

DrawMetaSprite(
FindMetaSpriteId("pickerbottompageedge"),
20,
20,
false,
false,
DrawMode.Tile
)

end

Expand All @@ -229,11 +233,27 @@ function DrawTool:HideColorPanel()

-- Clear bottom of the main window
for i = 1, 8 do
editorUI:NewDraw("DrawSprites", {pagebuttonempty.spriteIDs, 11 + i, 20, pagebuttonempty.width, false, false, DrawMode.Tile})
-- editorUI:NewDraw("DrawSprites", {pagebuttonempty.spriteIDs, 11 + i, 20, pagebuttonempty.width, false, false, DrawMode.Tile})
DrawMetaSprite(
FindMetaSpriteId("pagebuttonempty"),
11 + i,
20,
false,
false,
DrawMode.Tile
)
end

editorUI:NewDraw("DrawSprites", {canvasbottomrightcorner.spriteIDs, 20, 20, canvasbottomrightcorner.width, false, false, DrawMode.Tile})

-- editorUI:NewDraw("DrawSprites", {canvasbottomrightcorner.spriteIDs, 20, 20, canvasbottomrightcorner.width, false, false, DrawMode.Tile})

DrawMetaSprite(
FindMetaSpriteId("canvasbottomrightcorner"),
20,
20,
false,
false,
DrawMode.Tile
)

end

Expand Down Expand Up @@ -341,7 +361,12 @@ function DrawTool:UpdateColorPanel()
end

if(self.showBGIcon == true) then
editorUI:NewDraw("DrawSprites", self.bgDrawArgs)
DrawMetaSprite(
self.bgDrawArgs[1],
self.bgDrawArgs[2],
self.bgDrawArgs[3]
)
-- editorUI:NewDraw("DrawSprites", self.bgDrawArgs)
end

end
Expand Down
31 changes: 17 additions & 14 deletions Disks/PixelVisionOS/System/Broken/DrawTool/code-draw-tool.lua
Expand Up @@ -9,10 +9,10 @@
]]--

-- Global UI used by this tool
LoadScript("pixel-vision-os-item-picker-v3")
LoadScript("pixel-vision-os-color-picker-v4")
LoadScript("pixel-vision-os-item-picker-v4")
LoadScript("pixel-vision-os-color-picker-v5")
LoadScript("pixel-vision-os-sprite-picker-v4")
LoadScript("pixel-vision-os-canvas-v3")
LoadScript("pixel-vision-os-canvas-v4")
LoadScript("pixel-vision-os-progress-modal-v2")

-- Create table to store the workspace tool logic
Expand Down Expand Up @@ -46,12 +46,13 @@ function DrawTool:Init()
invalid = true,
success = false,
canEdit = EditColorModal ~= nil,
debugMode = false,
debugMode = true,
colorOffset = 0,
lastMode = nil,
showBGColor = false,
panelInFocus = nil,
ignoreProcessing = false
ignoreProcessing = false,
toolTitle = "sprites.png" -- TODO this should just read from the file
}

-- Reset the undo history so it's ready for the tool
Expand Down Expand Up @@ -202,24 +203,25 @@ function DrawTool:LoadSuccess()

end

-- Change the sprite mode
-- -- Change the sprite mode
self:OnNextSpriteSize()

-- Select the start sprite
self:ChangeSpriteID(self.lastSpriteID)

-- print("SCALE", self.spriteMode)
-- print("self.spriteMode", self.spriteMode)
self:ConfigureSpritePickerSelector(self.spriteMode)

-- Set default tool
-- -- Set default tool
editorUI:SelectToggleButton(self.toolBtnData, defaultToolID)

-- Set default mode
-- -- Set default mode
self:ChangeEditMode(defaultMode)

self:ResetDataValidation()

-- print("Test", self.systemColorPickerData)
-- -- print("Test", self.systemColorPickerData)

self:ForcePickerFocus(self.systemColorPickerData)

Expand Down Expand Up @@ -353,7 +355,8 @@ function DrawTool:ForcePickerFocus(src)
self.selectionMode = SystemColorMode

-- Change sprite picker focus color
self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerover"].spriteIDs
-- TODO Need to change the selector
-- self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerover"].spriteIDs

-- Toggle menu options
pixelVisionOS:EnableMenuItem(CopyShortcut, false)
Expand Down Expand Up @@ -384,8 +387,8 @@ function DrawTool:ForcePickerFocus(src)
pixelVisionOS:ClearItemPickerSelection(self.systemColorPickerData)

-- Change selection focus colors
self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerover"].spriteIDs
self.paletteColorPickerData.picker.selectedDrawArgs[1] = _G["itempickerselectedup"].spriteIDs
-- self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerover"].spriteIDs
-- self.paletteColorPickerData.picker.selectedDrawArgs[1] = _G["itempickerselectedup"].spriteIDs

-- Toggle menu options
pixelVisionOS:EnableMenuItem(CopyShortcut, true)
Expand All @@ -405,8 +408,8 @@ function DrawTool:ForcePickerFocus(src)
-- -- Clear the system color picker selection
pixelVisionOS:ClearItemPickerSelection(self.systemColorPickerData)

self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerselectedup"].spriteIDs
self.paletteColorPickerData.picker.selectedDrawArgs[1] = _G["itempickerover"].spriteIDs
-- self.spritePickerData.picker.selectedDrawArgs[1] = _G["spritepickerselectedup"].spriteIDs
-- self.paletteColorPickerData.picker.selectedDrawArgs[1] = _G["itempickerover"].spriteIDs

pixelVisionOS:EnableMenuItem(CopyShortcut, true)
pixelVisionOS:EnableMenuItem(PasteShortcut, false)
Expand Down

0 comments on commit 3771913

Please sign in to comment.