Added platforms renderer

+Added an experimental platforms renderer
This commit is contained in:
izawartka 2025-07-20 23:31:22 +02:00
parent c01077ce38
commit 5b83f8c817
4 changed files with 37 additions and 0 deletions

View File

@ -128,3 +128,7 @@
.map svg g.spawn-point path.background { .map svg g.spawn-point path.background {
fill: #111; fill: #111;
} }
.map svg g.platform rect {
fill: #333;
}

View File

@ -11,8 +11,16 @@ import DerailerRenderer from './object-renderers/DerailerRenderer';
import ElectrificationStatusPopup from './additional-layer-components/ElectrificationStatusPopup'; import ElectrificationStatusPopup from './additional-layer-components/ElectrificationStatusPopup';
import SpawnPointRenderer from './object-renderers/SpawnPointRenderer'; import SpawnPointRenderer from './object-renderers/SpawnPointRenderer';
import IsolationEndRenderer from './object-renderers/IsolationEndRenderer'; import IsolationEndRenderer from './object-renderers/IsolationEndRenderer';
import PlatformRenderer from './object-renderers/PlatformRenderer';
const ObjectRendererQueue = [ const ObjectRendererQueue = [
{
'name': 'platforms',
'category': 'misc',
'type': 'Platform',
'renderer': PlatformRenderer,
'cond': (layers) => layers['platforms'],
},
{ {
'name': 'tracks', 'name': 'tracks',
'category': 'tracks', 'category': 'tracks',

View File

@ -0,0 +1,20 @@
export default function PlatformRenderer(props) {
const { object } = props;
const [x, y] = object.pos.toSVGCoords();
if(!object.def) return null;
const [centerX, centerY] = object.def.center.toSVGCoords();
const sizeX = object.def.size.x;
const sizeY = object.def.size.z;
return (
<g className="platform" transform={`translate(${x}, ${y}) rotate(${object.rot.y})`}>
<rect
x={-sizeX / 2 + centerX}
y={-sizeY / 2 + centerY}
width={sizeX}
height={sizeY}
/>
</g>
);
}

View File

@ -63,6 +63,11 @@ const Constants = {
fetchListUrl: `${process.env.PUBLIC_URL}/sceneries/sceneries.json`, fetchListUrl: `${process.env.PUBLIC_URL}/sceneries/sceneries.json`,
}, },
layers: [ layers: [
{
id: 'platforms',
name: 'Platforms (WIP)',
default: true,
},
{ {
id: 'tracks', id: 'tracks',
name: 'Tracks', name: 'Tracks',