From 4e3d5705a416a561661f3926c8cf6b5070c3092e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 11 Nov 2021 02:17:31 +0100 Subject: [PATCH] removed utility scripts --- MLEM.Data/DataTextureAtlas.cs | 2 +- Utilities/GetSupportedCharacters.py | 45 ----------------------- Utilities/Populate Data Texture Atlas.lua | 41 --------------------- 3 files changed, 1 insertion(+), 87 deletions(-) delete mode 100644 Utilities/GetSupportedCharacters.py delete mode 100644 Utilities/Populate Data Texture Atlas.lua diff --git a/MLEM.Data/DataTextureAtlas.cs b/MLEM.Data/DataTextureAtlas.cs index e67bd54..2bac052 100644 --- a/MLEM.Data/DataTextureAtlas.cs +++ b/MLEM.Data/DataTextureAtlas.cs @@ -31,7 +31,7 @@ namespace MLEM.Data { /// /// /// To see a Data Texture Atlas in action, you can check out the sandbox project: https://github.com/Ellpeck/MLEM/blob/main/Sandbox/Content/Textures/Furniture.atlas. - /// Additionally, if you are using Aseprite, there is a script to automatically populate it: https://github.com/Ellpeck/MLEM/blob/main/Utilities/Populate%20Data%20Texture%20Atlas.lua. + /// Additionally, if you are using Aseprite, there is a script to automatically populate it: https://gist.github.com/Ellpeck/e597c1412465c10f41a42050ec117ea2. /// public class DataTextureAtlas { diff --git a/Utilities/GetSupportedCharacters.py b/Utilities/GetSupportedCharacters.py deleted file mode 100644 index d93e259..0000000 --- a/Utilities/GetSupportedCharacters.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -This script prints out a xml element that contains efficiently calculated regions for -all of the font's supported unicode characters. Pass the font file (not the spritefont xml) as an argument. -This script requires FontTools. Install using: pip install fonttools -""" - -""" The amount of characters that can be missing in a sequence to still put them in one region """ -leeway = 0 - -from fontTools.ttLib import TTFont -from sys import argv - - -def print_region(start, end): - print(f" ") - print(f" &#{start};") - print(f" &#{end};") - print(f" ") - - -# get all supported characters and sort them -ttf = TTFont(argv[1]) -chars = list(set(y[0] for x in ttf["cmap"].tables for y in x.cmap.items())) -chars.sort() -ttf.close() - -# split them into regions based on the leeway -start = -1 -last = 0 -total = 0 -print("") -for char in chars: - if char - last > leeway + 1: - if start != -1: - print_region(start, last) - total += last - start + 1 - start = char - last = char -# print the remaining region -print_region(start, last) -total += last - start + 1 -print("") - -print(f"The font contains {len(chars)} characters") -print(f"The spritefont will contain {total} characters") \ No newline at end of file diff --git a/Utilities/Populate Data Texture Atlas.lua b/Utilities/Populate Data Texture Atlas.lua deleted file mode 100644 index b207139..0000000 --- a/Utilities/Populate Data Texture Atlas.lua +++ /dev/null @@ -1,41 +0,0 @@ --- This is a lua script for Aseprite that allows automatically populating a MLEM.Data Data Texture Atlas. --- To use this script, you need to select a rectangular area that should be your texture region. --- If you want a custom pivot point, you also need to un-select exactly one pixel, the pivot point. --- When you then execute the script and input the name of the texture region, it gets appended to the "SpriteName.atlas" file. - --- get the currently selected sprite -local selection = app.activeSprite.selection -if selection == nil then return end -local bounds = selection.bounds - -local loc = "loc "..bounds.x.." "..bounds.y.." "..bounds.width.." "..bounds.height.."\n" -local piv = "" - --- find the pivot point, which should be the only de-selected pixel in the selection -for x = bounds.x, bounds.x + bounds.width - 1 do - for y = bounds.y, bounds.y + bounds.height - 1 do - if not selection:contains(x, y) then - piv = "piv "..x.." "..y.."\n" - goto foundPivot - end - end -end -::foundPivot:: - --- open the name dialog -local dialog = Dialog("Populate Data Texture Atlas") - :entry{ id = "name", label = "Region Name", focus = true } - :button{ id = "ok", text="&OK" } - :button{ text = "&Cancel" } -dialog:show() - -local data = dialog.data -if not data.ok then return end -local name = data.name - --- get the atlas file and write the data to it -local spriteFile = app.activeSprite.filename -local atlas = spriteFile:match("(.+)%..+")..".atlas" -local file = io.open(atlas, "a") -file:write("\n"..name.."\n"..loc..piv) -file:close() \ No newline at end of file