From 42778e8be409b97059fa519b53c303cdba502e01 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Tue, 5 Sep 2017 09:30:42 +0200 Subject: Implement rack creation --- src/containers/map/layers/ObjectHoverLayer.js | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/containers/map/layers/ObjectHoverLayer.js (limited to 'src/containers/map/layers/ObjectHoverLayer.js') diff --git a/src/containers/map/layers/ObjectHoverLayer.js b/src/containers/map/layers/ObjectHoverLayer.js new file mode 100644 index 00000000..e9df0384 --- /dev/null +++ b/src/containers/map/layers/ObjectHoverLayer.js @@ -0,0 +1,35 @@ +import {connect} from "react-redux"; +import {addRackToTile} from "../../../actions/topology"; +import ObjectHoverLayerComponent from "../../../components/map/layers/ObjectHoverLayerComponent"; +import {findTileWithPosition} from "../../../util/tile-calculations"; + +const mapStateToProps = state => { + return { + isEnabled: () => state.construction.inObjectConstructionMode, + isValid: (x, y) => { + if (state.interactionLevel.mode !== "ROOM") { + return false; + } + + const currentRoom = state.objects.room[state.interactionLevel.roomId]; + const tiles = currentRoom.tileIds.map(tileId => state.objects.tile[tileId]); + const tile = findTileWithPosition(tiles, x, y); + + return !(tile === null || tile.objectType); + + }, + }; +}; + +const mapDispatchToProps = dispatch => { + return { + onClick: (x, y) => dispatch(addRackToTile(x, y)), + }; +}; + +const ObjectHoverLayer = connect( + mapStateToProps, + mapDispatchToProps +)(ObjectHoverLayerComponent); + +export default ObjectHoverLayer; -- cgit v1.2.3