MCPcopy Create free account
hub / github.com/melonjs/melonJS / readImageLayer

Function readImageLayer

packages/melonjs/src/level/tiled/TMXTileMap.js:44–100  ·  view source on GitHub ↗

* read the Image Layer Data * @ignore

(map, data, z)

Source from the content-addressed store, hash-verified

42 * @ignore
43 */
44function readImageLayer(map, data, z) {
45 // resolve embedded JSON image data if present
46 resolveEmbeddedImage(data);
47
48 // Normalize properties
49 applyTMXProperties(data.properties, data);
50
51 // derive repeat mode: legacy custom "repeat" property takes precedence
52 // (for backward compatibility), then Tiled 1.8+ native repeatx/repeaty
53 const repX = data.repeatx === true || data.repeatx === "1";
54 const repY = data.repeaty === true || data.repeaty === "1";
55 let repeat = data.properties?.repeat;
56 if (typeof repeat === "undefined" && (repX || repY)) {
57 if (repX && repY) {
58 repeat = "repeat";
59 } else if (repX) {
60 repeat = "repeat-x";
61 } else {
62 repeat = "repeat-y";
63 }
64 }
65
66 // Tiled 1.8+ parallax origin (map-level, baked into layer offset)
67 const pox = +(map.data.parallaxoriginx ?? 0);
68 const poy = +(map.data.parallaxoriginy ?? 0);
69 const ratioX = +(data.parallaxx ?? 1.0);
70 const ratioY = +(data.parallaxy ?? 1.0);
71 const ox = +(data.offsetx ?? data.x ?? 0) + pox * ratioX;
72 const oy = +(data.offsety ?? data.y ?? 0) + poy * ratioY;
73
74 // create the layer
75 const imageLayer = pool.pull(
76 "ImageLayer",
77 ox,
78 oy,
79 Object.assign(
80 {
81 name: data.name,
82 image: data.image,
83 ratio: vector2dPool.get(ratioX, ratioY),
84 tint: parseTintColor(data.tintcolor),
85 z: z,
86 repeat: repeat,
87 },
88 data.properties,
89 ),
90 );
91
92 // set some additional flags
93 const visible = data.visible ?? true;
94 imageLayer.setOpacity(visible ? +data.opacity : 0);
95
96 // layer blend mode (Tiled 1.12+)
97 imageLayer.blendMode = tiledBlendMode(data.mode);
98
99 return imageLayer;
100}
101

Callers 1

readMapObjectsMethod · 0.85

Calls 7

resolveEmbeddedImageFunction · 0.90
applyTMXPropertiesFunction · 0.90
parseTintColorFunction · 0.90
tiledBlendModeFunction · 0.90
pullMethod · 0.80
getMethod · 0.65
setOpacityMethod · 0.45

Tested by

no test coverage detected