mirror of
https://github.com/tonytins/CozyPixelStudio.git
synced 2025-08-11 20:24:42 -04:00
Added GPL importer, new palette classes for clarification
This commit is contained in:
parent
73f550f723
commit
770c633db2
10 changed files with 327 additions and 133 deletions
53
Scripts/Import.gd
Normal file
53
Scripts/Import.gd
Normal file
|
@ -0,0 +1,53 @@
|
|||
extends Node
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
func import_gpl(path : String) -> Palette:
|
||||
var result : Palette = null
|
||||
var file = File.new()
|
||||
if file.file_exists(path):
|
||||
file.open(path, File.READ)
|
||||
var text = file.get_as_text()
|
||||
var lines = text.split('\n')
|
||||
var line_number := 0
|
||||
var comments := ""
|
||||
for line in lines:
|
||||
# Check if valid Gimp Palette Library file
|
||||
if line_number == 0:
|
||||
if line != "GIMP Palette":
|
||||
break
|
||||
else:
|
||||
result = Palette.new()
|
||||
var name_start = path.find_last('/') + 1
|
||||
var name_end = path.find_last('.')
|
||||
if name_end > name_start:
|
||||
result.name = path.substr(name_start, name_end - name_start)
|
||||
|
||||
# Comments
|
||||
if line.begins_with('#'):
|
||||
comments += line.trim_prefix('#') + '\n'
|
||||
pass
|
||||
elif line_number > 0 && line.length() >= 12:
|
||||
var red : float = line.substr(0, 4).to_float() / 255.0
|
||||
var green : float = line.substr(4, 4).to_float() / 255.0
|
||||
var blue : float = line.substr(8, 4).to_float() / 255.0
|
||||
var name : String = line.substr(12, line.length() - 12)
|
||||
var color = Color(red, green, blue)
|
||||
result.add_color(color, name)
|
||||
line_number += 1
|
||||
|
||||
if result:
|
||||
result.comments = comments
|
||||
file.close()
|
||||
|
||||
return result
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
Loading…
Add table
Add a link
Reference in a new issue