From 07551a887ee42e74c0dd52e2fdf544a90df6a139 Mon Sep 17 00:00:00 2001 From: evlist Date: Fri, 14 Oct 2022 17:48:00 +0200 Subject: [PATCH] Fixed tile assembly. --- svgmap/src/components/map/Map.tsx | 30 +++++++++++- svgmap/src/components/map/MouseHandler.tsx | 53 +++++++++++----------- svgmap/src/components/map/Tile.tsx | 22 ++++++--- 3 files changed, 70 insertions(+), 35 deletions(-) diff --git a/svgmap/src/components/map/Map.tsx b/svgmap/src/components/map/Map.tsx index 6e4e81d..70118f8 100644 --- a/svgmap/src/components/map/Map.tsx +++ b/svgmap/src/components/map/Map.tsx @@ -13,7 +13,9 @@ interface MapProperties { } const Map: react.FC = (props: MapProperties) => { - const boardSize = Math.max(props.width, props.height) * 2; + const nbTiles = + Math.ceil((Math.max(props.width, props.height) * 2) / 256) + 2; + const boardSize = nbTiles * 256; const [shift, setShift] = useState({ x: 0, y: 0 }); const [zoom, setZoom] = useState(1); @@ -31,7 +33,19 @@ const Map: react.FC = (props: MapProperties) => { }; var tiledLayer: any[] = []; - tiledLayer.push(); + for (let row = 0; row < nbTiles; row++) { + for (let col = 0; col < nbTiles; col++) { + tiledLayer.push( + + ); + } + } return ( @@ -51,6 +65,18 @@ const Map: react.FC = (props: MapProperties) => { shift={shift} zoom={zoom} layers={[ + { + key: 'background', + content: ( + + ), + }, { key: 'tiles', content: tiledLayer }, { key: 'circle', content: }, ]} diff --git a/svgmap/src/components/map/MouseHandler.tsx b/svgmap/src/components/map/MouseHandler.tsx index e5b210e..2803dc1 100644 --- a/svgmap/src/components/map/MouseHandler.tsx +++ b/svgmap/src/components/map/MouseHandler.tsx @@ -25,27 +25,27 @@ const MouseHandler: react.FC = ( const [mouseState, setMouseState] = useState(initialMouseState); - console.log('MouseHandler, mouseState: ' + JSON.stringify(mouseState)); - console.log( - 'MouseHandler, shift: ' + - JSON.stringify(props.shift) + - ', zoom:' + - props.zoom - ); + // console.log('MouseHandler, mouseState: ' + JSON.stringify(mouseState)); + // console.log( + // 'MouseHandler, shift: ' + + // JSON.stringify(props.shift) + + // ', zoom:' + + // props.zoom + // ); const genericHandler = (event: any) => { - console.log(`Log - Event: ${event.type}`); - if (event.pageX !== undefined) { - console.log( - `Mouse : ${event.pageX}, ${event.pageY}, target: ${event.target}` - ); - console.log( - `mouseState: ' ${JSON.stringify(mouseState)} (+${ - Date.now() - mouseState.timestamp - }ms) ` - ); - return; - } + // console.log(`Log - Event: ${event.type}`); + // if (event.pageX !== undefined) { + // console.log( + // `Mouse : ${event.pageX}, ${event.pageY}, target: ${event.target}` + // ); + // console.log( + // `mouseState: ' ${JSON.stringify(mouseState)} (+${ + // Date.now() - mouseState.timestamp + // }ms) ` + // ); + // return; + //} }; const mouseLeaveHandler = (event: any) => { @@ -70,12 +70,12 @@ const MouseHandler: react.FC = ( const mouseMoveHandler = (event: any) => { if (mouseState.down && Date.now() - mouseState.timestamp > 5) { genericHandler(event); - console.log( - `dispatch ${JSON.stringify({ - x: event.pageX - mouseState.starting.x, - y: event.pageY - mouseState.starting.y, - })}` - ); + //console.log( + // `dispatch ${JSON.stringify({ + // x: event.pageX - mouseState.starting.x, + // y: event.pageY - mouseState.starting.y, + // })}` + // ); props.addShift({ x: event.pageX - mouseState.starting.x, y: event.pageY - mouseState.starting.y, @@ -120,7 +120,8 @@ const MouseHandler: react.FC = ( }; return ( -
= (props: TileProperties) => { + console.log(`Rendering `); const g = useRef(null); const timeout = (ms: number) => { @@ -40,13 +41,20 @@ const Tile: react.FC = (props: TileProperties) => { g.current?.replaceChildren(svgImage); }; loadImage(); - }); + }, []); - return ( - <> - - - ); + // const children = useMemo( + // () => ( + // <> + // + // + // ), + // [] + // ); + + return <> + +; }; export default Tile;