1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-12-16 11:41:50 +00:00

Workflow / pipeline for packing textures

This allows an alterinative texture packing workflow, that is free and open source. Which will greatly improve the ability to create content for the game.
This commit is contained in:
theisen1337 2020-06-12 00:08:04 -04:00
parent 059ea97455
commit dd3261f204
7 changed files with 93 additions and 15 deletions

View File

@ -0,0 +1,64 @@
from __future__ import print_function
import os
"""
@author: Thomas Theis
June 2020
GNU General Public License v3.0
"""
os.system("free-tex-packer-cli --project .\shapez_size_100.ftpp")
os.system("free-tex-packer-cli --project .\shapez_size_75.ftpp")
os.system("free-tex-packer-cli --project .\shapez_size_50.ftpp")
os.system("free-tex-packer-cli --project .\shapez_size_25.ftpp")
os.system("free-tex-packer-cli --project .\shapez_size_10.ftpp")
def update_file( filename, match , replacement ):
"""
Update Line in file, were match.
"""
# Read File
with open(filename, 'r') as file:
# Read list of lines into a list object
data = list(file.readlines())
# Loop through lines in file backwards, (meta: I know the keyword is at the bottem of the file.)
for i in range(len(data) -1, 0, -1):
# Check for Match
if match in data[i]:
# Print data before updated.
print("\n\nUpdated the line:")
print(data[i])
print("New line:")
# Update data
data[i] = replacement
# Print New data
print(data[i],"\n\n")
# Break loop
break
# ReOpen file to write
with open(filename, 'w') as file:
# Write modified data.
file.writelines( data )
update_file("../res_built/atlas/atlas0_100.json", "image", ' "image": "atlas0_100.png",\n')
update_file("../res_built/atlas/atlas0_75.json", "image", ' "image": "atlas0_75.png",\n')
update_file("../res_built/atlas/atlas0_50.json", "image", ' "image": "atlas0_50.png",\n')
update_file("../res_built/atlas/atlas0_25.json", "image", ' "image": "atlas0_25.png",\n')
update_file("../res_built/atlas/atlas0_10.json", "image", ' "image": "atlas0_10.png",\n')

9
res_pipeline/Steps.txt Normal file
View File

@ -0,0 +1,9 @@
You need to download free-tex-packer-cli from node.
1. npm install -g free-tex-packer-cli
2. run the python script.
*** NOTE ***
If you see flashing on the edges of animation textures i.e. belts. Try changing the "alphaThreshold" (between 0 and 1.0) key in the *.ftpp files

View File

@ -13,6 +13,7 @@
"removeFileExtension": false, "removeFileExtension": false,
"prependFolderName": true, "prependFolderName": true,
"scale": 0.1, "scale": 0.1,
"scaleMethod": "BICUBIC",
"filter": "none", "filter": "none",
"exporter": "JSON (hash)", "exporter": "JSON (hash)",
"base64Export": false, "base64Export": false,
@ -25,11 +26,11 @@
"fixedSize": false, "fixedSize": false,
"powerOfTwo": false, "powerOfTwo": false,
"padding": 0, "padding": 0,
"extrude": 0, "extrude": 2,
"allowRotation": true, "allowRotation": false,
"allowTrim": true, "allowTrim": true,
"trimMode": "trim", "trimMode": "trim",
"alphaThreshold": 0, "alphaThreshold": 0.5,
"detectIdentical": true, "detectIdentical": true,
"packer": "MaxRectsBin", "packer": "MaxRectsBin",
"packerMethod": "BestShortSideFit" "packerMethod": "BestShortSideFit"

View File

@ -13,6 +13,7 @@
"removeFileExtension": false, "removeFileExtension": false,
"prependFolderName": true, "prependFolderName": true,
"scale": 1, "scale": 1,
"scaleMethod": "BICUBIC",
"filter": "none", "filter": "none",
"exporter": "JSON (hash)", "exporter": "JSON (hash)",
"base64Export": false, "base64Export": false,
@ -25,11 +26,11 @@
"fixedSize": false, "fixedSize": false,
"powerOfTwo": false, "powerOfTwo": false,
"padding": 0, "padding": 0,
"extrude": 0, "extrude": 2,
"allowRotation": true, "allowRotation": false,
"allowTrim": true, "allowTrim": true,
"trimMode": "trim", "trimMode": "trim",
"alphaThreshold": 0, "alphaThreshold": 0.5,
"detectIdentical": true, "detectIdentical": true,
"packer": "MaxRectsBin", "packer": "MaxRectsBin",
"packerMethod": "BestShortSideFit" "packerMethod": "BestShortSideFit"

View File

@ -13,6 +13,7 @@
"removeFileExtension": false, "removeFileExtension": false,
"prependFolderName": true, "prependFolderName": true,
"scale": 0.25, "scale": 0.25,
"scaleMethod": "BICUBIC",
"filter": "none", "filter": "none",
"exporter": "JSON (hash)", "exporter": "JSON (hash)",
"base64Export": false, "base64Export": false,
@ -25,11 +26,11 @@
"fixedSize": false, "fixedSize": false,
"powerOfTwo": false, "powerOfTwo": false,
"padding": 0, "padding": 0,
"extrude": 0, "extrude": 2,
"allowRotation": true, "allowRotation": false,
"allowTrim": true, "allowTrim": true,
"trimMode": "trim", "trimMode": "trim",
"alphaThreshold": 0, "alphaThreshold": 0.5,
"detectIdentical": true, "detectIdentical": true,
"packer": "MaxRectsBin", "packer": "MaxRectsBin",
"packerMethod": "BestShortSideFit" "packerMethod": "BestShortSideFit"

View File

@ -13,6 +13,7 @@
"removeFileExtension": false, "removeFileExtension": false,
"prependFolderName": true, "prependFolderName": true,
"scale": 0.5, "scale": 0.5,
"scaleMethod": "BICUBIC",
"filter": "none", "filter": "none",
"exporter": "JSON (hash)", "exporter": "JSON (hash)",
"base64Export": false, "base64Export": false,
@ -25,11 +26,11 @@
"fixedSize": false, "fixedSize": false,
"powerOfTwo": false, "powerOfTwo": false,
"padding": 0, "padding": 0,
"extrude": 0, "extrude": 2,
"allowRotation": true, "allowRotation": false,
"allowTrim": true, "allowTrim": true,
"trimMode": "trim", "trimMode": "trim",
"alphaThreshold": 0, "alphaThreshold": 0.5,
"detectIdentical": true, "detectIdentical": true,
"packer": "MaxRectsBin", "packer": "MaxRectsBin",
"packerMethod": "BestShortSideFit" "packerMethod": "BestShortSideFit"

View File

@ -13,6 +13,7 @@
"removeFileExtension": false, "removeFileExtension": false,
"prependFolderName": true, "prependFolderName": true,
"scale": 0.75, "scale": 0.75,
"scaleMethod": "BICUBIC",
"filter": "none", "filter": "none",
"exporter": "JSON (hash)", "exporter": "JSON (hash)",
"base64Export": false, "base64Export": false,
@ -25,11 +26,11 @@
"fixedSize": false, "fixedSize": false,
"powerOfTwo": false, "powerOfTwo": false,
"padding": 0, "padding": 0,
"extrude": 0, "extrude": 2,
"allowRotation": true, "allowRotation": false,
"allowTrim": true, "allowTrim": true,
"trimMode": "trim", "trimMode": "trim",
"alphaThreshold": 0, "alphaThreshold": 0.5,
"detectIdentical": true, "detectIdentical": true,
"packer": "MaxRectsBin", "packer": "MaxRectsBin",
"packerMethod": "BestShortSideFit" "packerMethod": "BestShortSideFit"