LibGDX Texture Packing (finally!) (#755)
* Format tsconfig, remove atlas files * Add helpers for texture packing * Rest of the texture packing... * Update gitignores * Update readmepull/760/head
parent
beb09a9e3e
commit
a02438a70a
@ -1,3 +0,0 @@
|
|||||||
The artwork can be found here:
|
|
||||||
|
|
||||||
https://github.com/tobspr/shapez.io-artwork
|
|
@ -0,0 +1,127 @@
|
|||||||
|
const { join, resolve } = require("path");
|
||||||
|
const { readFileSync, readdirSync, writeFileSync } = require("fs");
|
||||||
|
|
||||||
|
const suffixToScale = {
|
||||||
|
lq: "0.25",
|
||||||
|
mq: "0.5",
|
||||||
|
hq: "0.75"
|
||||||
|
};
|
||||||
|
|
||||||
|
function convert(srcDir) {
|
||||||
|
const full = resolve(srcDir);
|
||||||
|
const srcFiles = readdirSync(full)
|
||||||
|
.filter(n => n.endsWith(".atlas"))
|
||||||
|
.map(n => join(full, n));
|
||||||
|
|
||||||
|
for (const atlas of srcFiles) {
|
||||||
|
console.log(`Processing: ${atlas}`);
|
||||||
|
|
||||||
|
// Read all text, split it into line array
|
||||||
|
// and filter all empty lines
|
||||||
|
const lines = readFileSync(atlas, "utf-8")
|
||||||
|
.split("\n")
|
||||||
|
.filter(n => n.trim());
|
||||||
|
|
||||||
|
// Get source image name
|
||||||
|
const image = lines.shift();
|
||||||
|
const srcMeta = {};
|
||||||
|
|
||||||
|
// Read all metadata (supports only one page)
|
||||||
|
while (true) {
|
||||||
|
const kv = lines.shift().split(":");
|
||||||
|
if (kv.length != 2) {
|
||||||
|
lines.unshift(kv[0]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
srcMeta[kv[0]] = kv[1].trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
const frames = {};
|
||||||
|
let current = null;
|
||||||
|
|
||||||
|
lines.push("Dummy line to make it convert last frame");
|
||||||
|
|
||||||
|
for (const line of lines) {
|
||||||
|
if (!line.startsWith(" ")) {
|
||||||
|
// New frame, convert previous if it exists
|
||||||
|
if (current != null) {
|
||||||
|
let { name, rotate, xy, size, orig, offset, index } = current;
|
||||||
|
|
||||||
|
// Convert to arrays because Node.js doesn't
|
||||||
|
// support latest JS features
|
||||||
|
xy = xy.split(",").map(v => Number(v));
|
||||||
|
size = size.split(",").map(v => Number(v));
|
||||||
|
orig = orig.split(",").map(v => Number(v));
|
||||||
|
offset = offset.split(",").map(v => Number(v));
|
||||||
|
|
||||||
|
// GDX TexturePacker removes index suffixes
|
||||||
|
const indexSuff = index != -1 ? `_${index}` : "";
|
||||||
|
const isTrimmed = size != orig;
|
||||||
|
|
||||||
|
frames[`${name}${indexSuff}.png`] = {
|
||||||
|
// Bounds on atlas
|
||||||
|
frame: {
|
||||||
|
x: xy[0],
|
||||||
|
y: xy[1],
|
||||||
|
w: size[0],
|
||||||
|
h: size[1]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Whether image was rotated
|
||||||
|
rotated: rotate == "true",
|
||||||
|
trimmed: isTrimmed,
|
||||||
|
|
||||||
|
// How is the image trimmed
|
||||||
|
spriteSourceSize: {
|
||||||
|
x: offset[0],
|
||||||
|
y: (orig[1] - size[1]) - offset[1],
|
||||||
|
w: size[0],
|
||||||
|
h: size[1]
|
||||||
|
},
|
||||||
|
|
||||||
|
sourceSize: {
|
||||||
|
w: orig[0],
|
||||||
|
h: orig[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simple object that will hold other metadata
|
||||||
|
current = {
|
||||||
|
name: line
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
// Read and set current image metadata
|
||||||
|
const kv = line.split(":").map(v => v.trim());
|
||||||
|
current[kv[0]] = isNaN(Number(kv[1])) ? kv[1] : Number(kv[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const atlasSize = srcMeta.size.split(",").map(v => Number(v));
|
||||||
|
const atlasScale = suffixToScale[atlas.match(/_(\w+)\.atlas$/)[1]];
|
||||||
|
|
||||||
|
const result = JSON.stringify({
|
||||||
|
frames,
|
||||||
|
meta: {
|
||||||
|
image,
|
||||||
|
format: srcMeta.format,
|
||||||
|
size: {
|
||||||
|
w: atlasSize[0],
|
||||||
|
h: atlasSize[1]
|
||||||
|
},
|
||||||
|
scale: atlasScale.toString()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
writeFileSync(atlas.replace(".atlas", ".json"), result, {
|
||||||
|
encoding: "utf-8"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (require.main == module) {
|
||||||
|
convert(process.argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { convert };
|
@ -1,2 +0,0 @@
|
|||||||
# Ignore built sounds
|
|
||||||
sounds
|
|
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 1.3 MiB |
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 286 KiB |
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 723 KiB |
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"pot": false,
|
||||||
|
"paddingX": 1,
|
||||||
|
"paddingY": 1,
|
||||||
|
"edgePadding": false,
|
||||||
|
"rotation": false,
|
||||||
|
"maxWidth": 2048,
|
||||||
|
"maxHeight": 4096,
|
||||||
|
"stripWhitespaceX": true,
|
||||||
|
"stripWhitespaceY": true,
|
||||||
|
"alias": true,
|
||||||
|
"combineSubdirectories": true,
|
||||||
|
"flattenPaths": false,
|
||||||
|
"scale": [ 0.25, 0.5, 0.75 ],
|
||||||
|
"scaleSuffix": [ "_lq", "_mq", "_hq" ]
|
||||||
|
}
|
@ -1,625 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<data version="1.0">
|
|
||||||
<struct type="Settings">
|
|
||||||
<key>fileFormatVersion</key>
|
|
||||||
<int>4</int>
|
|
||||||
<key>texturePackerVersion</key>
|
|
||||||
<string>5.4.0</string>
|
|
||||||
<key>autoSDSettings</key>
|
|
||||||
<array>
|
|
||||||
<struct type="AutoSDSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>0.75</double>
|
|
||||||
<key>extension</key>
|
|
||||||
<string>_hq</string>
|
|
||||||
<key>spriteFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>acceptFractionalValues</key>
|
|
||||||
<true/>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>2048</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>2048</int>
|
|
||||||
</QSize>
|
|
||||||
</struct>
|
|
||||||
<struct type="AutoSDSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>0.5</double>
|
|
||||||
<key>extension</key>
|
|
||||||
<string>_mq</string>
|
|
||||||
<key>spriteFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>acceptFractionalValues</key>
|
|
||||||
<true/>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>2048</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>2048</int>
|
|
||||||
</QSize>
|
|
||||||
</struct>
|
|
||||||
<struct type="AutoSDSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>0.25</double>
|
|
||||||
<key>extension</key>
|
|
||||||
<string>_lq</string>
|
|
||||||
<key>spriteFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>acceptFractionalValues</key>
|
|
||||||
<true/>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>2048</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>2048</int>
|
|
||||||
</QSize>
|
|
||||||
</struct>
|
|
||||||
</array>
|
|
||||||
<key>allowRotation</key>
|
|
||||||
<false/>
|
|
||||||
<key>shapeDebug</key>
|
|
||||||
<false/>
|
|
||||||
<key>dpi</key>
|
|
||||||
<uint>72</uint>
|
|
||||||
<key>dataFormat</key>
|
|
||||||
<string>json</string>
|
|
||||||
<key>textureFileName</key>
|
|
||||||
<filename></filename>
|
|
||||||
<key>flipPVR</key>
|
|
||||||
<false/>
|
|
||||||
<key>pvrCompressionQuality</key>
|
|
||||||
<enum type="SettingsBase::PvrCompressionQuality">PVR_QUALITY_NORMAL</enum>
|
|
||||||
<key>atfCompressData</key>
|
|
||||||
<false/>
|
|
||||||
<key>mipMapMinSize</key>
|
|
||||||
<uint>32768</uint>
|
|
||||||
<key>etc1CompressionQuality</key>
|
|
||||||
<enum type="SettingsBase::Etc1CompressionQuality">ETC1_QUALITY_LOW_PERCEPTUAL</enum>
|
|
||||||
<key>etc2CompressionQuality</key>
|
|
||||||
<enum type="SettingsBase::Etc2CompressionQuality">ETC2_QUALITY_LOW_PERCEPTUAL</enum>
|
|
||||||
<key>dxtCompressionMode</key>
|
|
||||||
<enum type="SettingsBase::DxtCompressionMode">DXT_PERCEPTUAL</enum>
|
|
||||||
<key>jxrColorFormat</key>
|
|
||||||
<enum type="SettingsBase::JpegXrColorMode">JXR_YUV444</enum>
|
|
||||||
<key>jxrTrimFlexBits</key>
|
|
||||||
<uint>0</uint>
|
|
||||||
<key>jxrCompressionLevel</key>
|
|
||||||
<uint>0</uint>
|
|
||||||
<key>ditherType</key>
|
|
||||||
<enum type="SettingsBase::DitherType">NearestNeighbour</enum>
|
|
||||||
<key>backgroundColor</key>
|
|
||||||
<uint>0</uint>
|
|
||||||
<key>libGdx</key>
|
|
||||||
<struct type="LibGDX">
|
|
||||||
<key>filtering</key>
|
|
||||||
<struct type="LibGDXFiltering">
|
|
||||||
<key>x</key>
|
|
||||||
<enum type="LibGDXFiltering::Filtering">Linear</enum>
|
|
||||||
<key>y</key>
|
|
||||||
<enum type="LibGDXFiltering::Filtering">Linear</enum>
|
|
||||||
</struct>
|
|
||||||
</struct>
|
|
||||||
<key>shapePadding</key>
|
|
||||||
<uint>2</uint>
|
|
||||||
<key>jpgQuality</key>
|
|
||||||
<uint>80</uint>
|
|
||||||
<key>pngOptimizationLevel</key>
|
|
||||||
<uint>0</uint>
|
|
||||||
<key>webpQualityLevel</key>
|
|
||||||
<uint>101</uint>
|
|
||||||
<key>textureSubPath</key>
|
|
||||||
<string></string>
|
|
||||||
<key>atfFormats</key>
|
|
||||||
<string></string>
|
|
||||||
<key>textureFormat</key>
|
|
||||||
<enum type="SettingsBase::TextureFormat">png</enum>
|
|
||||||
<key>borderPadding</key>
|
|
||||||
<uint>4</uint>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>2048</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>2048</int>
|
|
||||||
</QSize>
|
|
||||||
<key>fixedTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>-1</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>-1</int>
|
|
||||||
</QSize>
|
|
||||||
<key>algorithmSettings</key>
|
|
||||||
<struct type="AlgorithmSettings">
|
|
||||||
<key>algorithm</key>
|
|
||||||
<enum type="AlgorithmSettings::AlgorithmId">MaxRects</enum>
|
|
||||||
<key>freeSizeMode</key>
|
|
||||||
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum>
|
|
||||||
<key>sizeConstraints</key>
|
|
||||||
<enum type="AlgorithmSettings::SizeConstraints">POT</enum>
|
|
||||||
<key>forceSquared</key>
|
|
||||||
<false/>
|
|
||||||
<key>maxRects</key>
|
|
||||||
<struct type="AlgorithmMaxRectsSettings">
|
|
||||||
<key>heuristic</key>
|
|
||||||
<enum type="AlgorithmMaxRectsSettings::Heuristic">Best</enum>
|
|
||||||
</struct>
|
|
||||||
<key>basic</key>
|
|
||||||
<struct type="AlgorithmBasicSettings">
|
|
||||||
<key>sortBy</key>
|
|
||||||
<enum type="AlgorithmBasicSettings::SortBy">Best</enum>
|
|
||||||
<key>order</key>
|
|
||||||
<enum type="AlgorithmBasicSettings::Order">Ascending</enum>
|
|
||||||
</struct>
|
|
||||||
<key>polygon</key>
|
|
||||||
<struct type="AlgorithmPolygonSettings">
|
|
||||||
<key>alignToGrid</key>
|
|
||||||
<uint>1</uint>
|
|
||||||
</struct>
|
|
||||||
</struct>
|
|
||||||
<key>dataFileNames</key>
|
|
||||||
<map type="GFileNameMap">
|
|
||||||
<key>data</key>
|
|
||||||
<struct type="DataFile">
|
|
||||||
<key>name</key>
|
|
||||||
<filename>../res_built/atlas/atlas{n}{v}.json</filename>
|
|
||||||
</struct>
|
|
||||||
</map>
|
|
||||||
<key>multiPack</key>
|
|
||||||
<true/>
|
|
||||||
<key>forceIdenticalLayout</key>
|
|
||||||
<false/>
|
|
||||||
<key>outputFormat</key>
|
|
||||||
<enum type="SettingsBase::OutputFormat">RGBA8888</enum>
|
|
||||||
<key>alphaHandling</key>
|
|
||||||
<enum type="SettingsBase::AlphaHandling">ClearTransparentPixels</enum>
|
|
||||||
<key>contentProtection</key>
|
|
||||||
<struct type="ContentProtection">
|
|
||||||
<key>key</key>
|
|
||||||
<string></string>
|
|
||||||
</struct>
|
|
||||||
<key>autoAliasEnabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>trimSpriteNames</key>
|
|
||||||
<false/>
|
|
||||||
<key>prependSmartFolderName</key>
|
|
||||||
<true/>
|
|
||||||
<key>autodetectAnimations</key>
|
|
||||||
<true/>
|
|
||||||
<key>globalSpriteSettings</key>
|
|
||||||
<struct type="SpriteSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scaleMode</key>
|
|
||||||
<enum type="ScaleMode">Smooth</enum>
|
|
||||||
<key>extrude</key>
|
|
||||||
<uint>2</uint>
|
|
||||||
<key>trimThreshold</key>
|
|
||||||
<uint>2</uint>
|
|
||||||
<key>trimMargin</key>
|
|
||||||
<uint>1</uint>
|
|
||||||
<key>trimMode</key>
|
|
||||||
<enum type="SpriteSettings::TrimMode">Trim</enum>
|
|
||||||
<key>tracerTolerance</key>
|
|
||||||
<int>200</int>
|
|
||||||
<key>heuristicMask</key>
|
|
||||||
<false/>
|
|
||||||
<key>defaultPivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>writePivotPoints</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key>individualSpriteSettings</key>
|
|
||||||
<map type="IndividualSpriteSettingsMap">
|
|
||||||
<key type="filename">sprites/belt/built/forward_0.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_1.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_2.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/forward_9.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_0.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_1.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_2.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/left_9.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_0.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_1.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_2.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/built/right_9.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/analyzer.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/balancer-merger-inverse.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/balancer-merger.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/balancer-splitter-inverse.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/balancer-splitter.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/belt_left.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/belt_right.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/belt_top.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/comparator.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/constant_signal.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/display.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/item_producer.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/lever.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/logic_gate-not.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/logic_gate-or.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/logic_gate-xor.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/logic_gate.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/miner-chainable.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/miner.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/reader.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/rotater-rotate180.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/rotater.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/transistor-mirrored.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/transistor.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/trash.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_entry.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_exit-tier2.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/virtual_processor-painter.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/virtual_processor-rotater.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/virtual_processor-stacker.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/virtual_processor-unstacker.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/virtual_processor.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/wire_tunnel.png</key>
|
|
||||||
<key type="filename">sprites/buildings/analyzer.png</key>
|
|
||||||
<key type="filename">sprites/buildings/balancer-merger-inverse.png</key>
|
|
||||||
<key type="filename">sprites/buildings/balancer-merger.png</key>
|
|
||||||
<key type="filename">sprites/buildings/balancer-splitter-inverse.png</key>
|
|
||||||
<key type="filename">sprites/buildings/balancer-splitter.png</key>
|
|
||||||
<key type="filename">sprites/buildings/comparator.png</key>
|
|
||||||
<key type="filename">sprites/buildings/constant_signal.png</key>
|
|
||||||
<key type="filename">sprites/buildings/display.png</key>
|
|
||||||
<key type="filename">sprites/buildings/item_producer.png</key>
|
|
||||||
<key type="filename">sprites/buildings/lever.png</key>
|
|
||||||
<key type="filename">sprites/buildings/logic_gate-not.png</key>
|
|
||||||
<key type="filename">sprites/buildings/logic_gate-or.png</key>
|
|
||||||
<key type="filename">sprites/buildings/logic_gate-xor.png</key>
|
|
||||||
<key type="filename">sprites/buildings/logic_gate.png</key>
|
|
||||||
<key type="filename">sprites/buildings/miner-chainable.png</key>
|
|
||||||
<key type="filename">sprites/buildings/reader.png</key>
|
|
||||||
<key type="filename">sprites/buildings/rotater-ccw.png</key>
|
|
||||||
<key type="filename">sprites/buildings/rotater-rotate180.png</key>
|
|
||||||
<key type="filename">sprites/buildings/transistor-mirrored.png</key>
|
|
||||||
<key type="filename">sprites/buildings/transistor.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_entry.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_exit-tier2.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_exit.png</key>
|
|
||||||
<key type="filename">sprites/buildings/virtual_processor-painter.png</key>
|
|
||||||
<key type="filename">sprites/buildings/virtual_processor-rotater.png</key>
|
|
||||||
<key type="filename">sprites/buildings/virtual_processor-stacker.png</key>
|
|
||||||
<key type="filename">sprites/buildings/virtual_processor-unstacker.png</key>
|
|
||||||
<key type="filename">sprites/buildings/virtual_processor.png</key>
|
|
||||||
<key type="filename">sprites/buildings/wire_tunnel.png</key>
|
|
||||||
<key type="filename">sprites/misc/reader_overlay.png</key>
|
|
||||||
<key type="filename">sprites/wires/lever_on.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/conflict_cross.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/conflict_forward.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/conflict_split.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/conflict_turn.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/first_cross.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/first_forward.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/first_split.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/first_turn.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/second_cross.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/second_forward.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/second_split.png</key>
|
|
||||||
<key type="filename">sprites/wires/sets/second_turn.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>48,48,96,96</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>48,48,96,96</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/blueprints/balancer.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/cutter.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/filter.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/mixer.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/painter-mirrored.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/painter.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/stacker.png</key>
|
|
||||||
<key type="filename">sprites/buildings/balancer.png</key>
|
|
||||||
<key type="filename">sprites/buildings/filter.png</key>
|
|
||||||
<key type="filename">sprites/buildings/painter-mirrored.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>96,48,192,96</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>96,48,192,96</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/blueprints/cutter-quad.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/painter-quad.png</key>
|
|
||||||
<key type="filename">sprites/buildings/cutter-quad.png</key>
|
|
||||||
<key type="filename">sprites/buildings/painter-quad.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>192,48,384,96</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>192,48,384,96</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/blueprints/painter-double.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/storage.png</key>
|
|
||||||
<key type="filename">sprites/buildings/painter-double.png</key>
|
|
||||||
<key type="filename">sprites/buildings/storage.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>96,96,192,192</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>96,96,192,192</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/buildings/belt_left.png</key>
|
|
||||||
<key type="filename">sprites/buildings/belt_right.png</key>
|
|
||||||
<key type="filename">sprites/buildings/belt_top.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>32,32,63,63</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>32,32,63,63</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/buildings/cutter.png</key>
|
|
||||||
<key type="filename">sprites/buildings/mixer.png</key>
|
|
||||||
<key type="filename">sprites/buildings/painter.png</key>
|
|
||||||
<key type="filename">sprites/buildings/stacker.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>64,32,128,64</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>64,32,128,64</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/buildings/hub.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>192,192,384,384</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>192,192,384,384</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/buildings/miner.png</key>
|
|
||||||
<key type="filename">sprites/buildings/rotater.png</key>
|
|
||||||
<key type="filename">sprites/buildings/trash.png</key>
|
|
||||||
<key type="filename">sprites/misc/processor_disabled.png</key>
|
|
||||||
<key type="filename">sprites/misc/processor_disconnected.png</key>
|
|
||||||
<key type="filename">sprites/wires/logical_acceptor.png</key>
|
|
||||||
<key type="filename">sprites/wires/logical_ejector.png</key>
|
|
||||||
<key type="filename">sprites/wires/overlay_tile.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>32,32,64,64</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>32,32,64,64</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/colors/blue.png</key>
|
|
||||||
<key type="filename">sprites/colors/cyan.png</key>
|
|
||||||
<key type="filename">sprites/colors/green.png</key>
|
|
||||||
<key type="filename">sprites/colors/purple.png</key>
|
|
||||||
<key type="filename">sprites/colors/red.png</key>
|
|
||||||
<key type="filename">sprites/colors/uncolored.png</key>
|
|
||||||
<key type="filename">sprites/colors/white.png</key>
|
|
||||||
<key type="filename">sprites/colors/yellow.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>18,18,36,36</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>18,18,36,36</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/debug/acceptor_slot.png</key>
|
|
||||||
<key type="filename">sprites/debug/ejector_slot.png</key>
|
|
||||||
<key type="filename">sprites/misc/hub_direction_indicator.png</key>
|
|
||||||
<key type="filename">sprites/misc/waypoint.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>8,8,16,16</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>8,8,16,16</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/misc/slot_bad_arrow.png</key>
|
|
||||||
<key type="filename">sprites/misc/slot_good_arrow.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>24,24,48,48</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>24,24,48,48</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/misc/storage_overlay.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>44,22,89,43</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>44,22,89,43</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/wires/boolean_false.png</key>
|
|
||||||
<key type="filename">sprites/wires/boolean_true.png</key>
|
|
||||||
<key type="filename">sprites/wires/network_conflict.png</key>
|
|
||||||
<key type="filename">sprites/wires/network_empty.png</key>
|
|
||||||
<key type="filename">sprites/wires/wires_preview.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>16,16,32,32</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>16,16,32,32</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/wires/display/blue.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/cyan.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/green.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/purple.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/red.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/white.png</key>
|
|
||||||
<key type="filename">sprites/wires/display/yellow.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>11,11,22,22</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>11,11,22,22</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
</map>
|
|
||||||
<key>fileList</key>
|
|
||||||
<array>
|
|
||||||
<filename>sprites</filename>
|
|
||||||
</array>
|
|
||||||
<key>ignoreFileList</key>
|
|
||||||
<array/>
|
|
||||||
<key>replaceList</key>
|
|
||||||
<array/>
|
|
||||||
<key>ignoredWarnings</key>
|
|
||||||
<array/>
|
|
||||||
<key>commonDivisorX</key>
|
|
||||||
<uint>1</uint>
|
|
||||||
<key>commonDivisorY</key>
|
|
||||||
<uint>1</uint>
|
|
||||||
<key>packNormalMaps</key>
|
|
||||||
<false/>
|
|
||||||
<key>autodetectNormalMaps</key>
|
|
||||||
<true/>
|
|
||||||
<key>normalMapFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>normalMapSuffix</key>
|
|
||||||
<string></string>
|
|
||||||
<key>normalMapSheetFileName</key>
|
|
||||||
<filename></filename>
|
|
||||||
<key>exporterProperties</key>
|
|
||||||
<map type="ExporterProperties"/>
|
|
||||||
</struct>
|
|
||||||
</data>
|
|
Loading…
Reference in new issue