Pyroxenium / Basalt

A UI Framework for CC:Tweaked
MIT License
189 stars 34 forks source link

bug: Side-specific border coloring with .xml values does not work #47

Open Felipe-Caldeira opened 1 year ago

Felipe-Caldeira commented 1 year ago

Describe the bug

Side-specific border coloring when making the UI with .xml does not work properly.

To Reproduce

Steps to reproduce the behavior:

  1. Create a simple Basalt UI with .xml style
  2. Add an object with a side-specific border coloring:
<button x="2" y="2" text="Hello" borderBottom="blue" />
  1. Run the program
  2. See error: Basalt error: .../basaltDraw.lua:202: bad argument (string expected, got nil)

Expected behavior

A button with the text "Hello" should appear with a blue border only along the bottom

Additional context

Changing these four lines (138-141) in Object.lua seems to fix it! Just had to wrap the xmlValue(...) return with colors[...], like the other surrounding code does.

if(xmlValue("borderLeft", data)~=nil)then borderColors["left"] = colors[xmlValue("borderLeft", data)] end
if(xmlValue("borderTop", data)~=nil)then borderColors["top"] = colors[xmlValue("borderTop", data)] end
if(xmlValue("borderRight", data)~=nil)then borderColors["right"] = colors[xmlValue("borderRight", data)] end
if(xmlValue("borderBottom", data)~=nil)then borderColors["bottom"] = colors[xmlValue("borderBottom", data)] end

Checklist

[x] I am running the latest version. Tick the box if you are running the latest version!

NoryiE commented 1 year ago

Hello! Thank you very much - also thanks for fixing it yourself and providing me the code! This issue got fixed in 6f0ddd6.