summaryrefslogtreecommitdiff
path: root/src/containers/map
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-08-31 17:59:51 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:05:50 +0200
commit3f736cd3db63f106eac02f220477b4a0f3b0eceb (patch)
tree80afa73f8c4d281b2fccba8ad2baa7c10f7e7e84 /src/containers/map
parentb17f1d8cb4815f57a4b7043cc91b867ec3cbc867 (diff)
Implement room creation
Diffstat (limited to 'src/containers/map')
-rw-r--r--src/containers/map/DatacenterContainer.js5
-rw-r--r--src/containers/map/RoomContainer.js8
-rw-r--r--src/containers/map/TileContainer.js13
-rw-r--r--src/containers/map/WallContainer.js14
-rw-r--r--src/containers/map/layers/HoverTileLayer.js23
5 files changed, 50 insertions, 13 deletions
diff --git a/src/containers/map/DatacenterContainer.js b/src/containers/map/DatacenterContainer.js
index 00b6e79f..8c80146d 100644
--- a/src/containers/map/DatacenterContainer.js
+++ b/src/containers/map/DatacenterContainer.js
@@ -1,16 +1,13 @@
import {connect} from "react-redux";
import DatacenterGroup from "../../components/map/groups/DatacenterGroup";
-import {denormalize} from "../../store/denormalizer";
const mapStateToProps = state => {
if (state.currentDatacenterId === -1) {
return {};
}
- const datacenter = denormalize(state, "datacenter", state.currentDatacenterId);
-
return {
- datacenter,
+ datacenter: state.objects.datacenter[state.currentDatacenterId],
interactionLevel: state.interactionLevel
};
};
diff --git a/src/containers/map/RoomContainer.js b/src/containers/map/RoomContainer.js
index d46324b2..2d078e09 100644
--- a/src/containers/map/RoomContainer.js
+++ b/src/containers/map/RoomContainer.js
@@ -2,15 +2,17 @@ import {connect} from "react-redux";
import {goFromBuildingToRoom} from "../../actions/interaction-level";
import RoomGroup from "../../components/map/groups/RoomGroup";
-const mapStateToProps = state => {
+const mapStateToProps = (state, ownProps) => {
return {
- interactionLevel: state.interactionLevel
+ interactionLevel: state.interactionLevel,
+ currentRoomInConstruction: state.currentRoomInConstruction,
+ room: state.objects.room[ownProps.roomId],
};
};
const mapDispatchToProps = (dispatch, ownProps) => {
return {
- onClick: () => dispatch(goFromBuildingToRoom(ownProps.room.id))
+ onClick: () => dispatch(goFromBuildingToRoom(ownProps.roomId)),
};
};
diff --git a/src/containers/map/TileContainer.js b/src/containers/map/TileContainer.js
index 0456c423..d00c3611 100644
--- a/src/containers/map/TileContainer.js
+++ b/src/containers/map/TileContainer.js
@@ -2,17 +2,18 @@ import {connect} from "react-redux";
import {goFromRoomToObject} from "../../actions/interaction-level";
import TileGroup from "../../components/map/groups/TileGroup";
-const mapStateToProps = state => {
+const mapStateToProps = (state, ownProps) => {
return {
- interactionLevel: state.interactionLevel
+ interactionLevel: state.interactionLevel,
+ tile: state.objects.tile[ownProps.tileId],
};
};
-const mapDispatchToProps = (dispatch, ownProps) => {
+const mapDispatchToProps = dispatch => {
return {
- onClick: () => {
- if (ownProps.tile.objectType) {
- dispatch(goFromRoomToObject(ownProps.tile.id))
+ onClick: tile => {
+ if (tile.objectType) {
+ dispatch(goFromRoomToObject(tile.id))
}
}
};
diff --git a/src/containers/map/WallContainer.js b/src/containers/map/WallContainer.js
new file mode 100644
index 00000000..f8ccb2e9
--- /dev/null
+++ b/src/containers/map/WallContainer.js
@@ -0,0 +1,14 @@
+import {connect} from "react-redux";
+import WallGroup from "../../components/map/groups/WallGroup";
+
+const mapStateToProps = (state, ownProps) => {
+ return {
+ tiles: state.objects.room[ownProps.roomId].tileIds.map(tileId => state.objects.tile[tileId]),
+ };
+};
+
+const WallContainer = connect(
+ mapStateToProps
+)(WallGroup);
+
+export default WallContainer;
diff --git a/src/containers/map/layers/HoverTileLayer.js b/src/containers/map/layers/HoverTileLayer.js
new file mode 100644
index 00000000..b8868233
--- /dev/null
+++ b/src/containers/map/layers/HoverTileLayer.js
@@ -0,0 +1,23 @@
+import {connect} from "react-redux";
+import {toggleTileAtLocation} from "../../../actions/topology";
+import HoverTileLayerComponent from "../../../components/map/layers/HoverTileLayerComponent";
+
+const mapStateToProps = state => {
+ return {
+ currentRoomInConstruction: state.currentRoomInConstruction,
+ isValid: (x, y) => true, // TODO implement proper validation
+ };
+};
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onClick: (x, y) => dispatch(toggleTileAtLocation(x, y)),
+ };
+};
+
+const HoverTileLayer = connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(HoverTileLayerComponent);
+
+export default HoverTileLayer;