From e3a6a96b6467ef3d7fde326d94160725e6f51fa7 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sat, 19 May 2018 07:57:54 -0500 Subject: [PATCH 01/15] Adds in simple world generator and base spawn --- .../las/LaSSimpleWorldGenerator.java | 46 ++++++++++++++ .../las/LaSSimpleWorldRasterizer.java | 46 ++++++++++++++ .../terasology/las/LaSSurfaceProvider.java | 50 +++++++++++++++ .../org/terasology/las/LaSWorldGenerator.java | 1 - .../java/org/terasology/las/bases/Base.java | 22 +++++++ .../org/terasology/las/bases/BaseFacet.java | 26 ++++++++ .../terasology/las/bases/BaseProvider.java | 62 +++++++++++++++++++ .../terasology/las/bases/BaseRasterizer.java | 61 ++++++++++++++++++ 8 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/terasology/las/LaSSimpleWorldGenerator.java create mode 100644 src/main/java/org/terasology/las/LaSSimpleWorldRasterizer.java create mode 100644 src/main/java/org/terasology/las/LaSSurfaceProvider.java create mode 100644 src/main/java/org/terasology/las/bases/Base.java create mode 100644 src/main/java/org/terasology/las/bases/BaseFacet.java create mode 100644 src/main/java/org/terasology/las/bases/BaseProvider.java create mode 100644 src/main/java/org/terasology/las/bases/BaseRasterizer.java diff --git a/src/main/java/org/terasology/las/LaSSimpleWorldGenerator.java b/src/main/java/org/terasology/las/LaSSimpleWorldGenerator.java new file mode 100644 index 00000000..79767682 --- /dev/null +++ b/src/main/java/org/terasology/las/LaSSimpleWorldGenerator.java @@ -0,0 +1,46 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las; + +import org.terasology.core.world.generator.facetProviders.SeaLevelProvider; +import org.terasology.engine.SimpleUri; +import org.terasology.las.bases.BaseProvider; +import org.terasology.las.bases.BaseRasterizer; +import org.terasology.registry.In; +import org.terasology.world.generation.BaseFacetedWorldGenerator; +import org.terasology.world.generation.WorldBuilder; +import org.terasology.world.generator.RegisterWorldGenerator; +import org.terasology.world.generator.plugin.WorldGeneratorPluginLibrary; + +@RegisterWorldGenerator(id = "LaSSimpleWorld", displayName = "Light and Shadow (Simple)") +public class LaSSimpleWorldGenerator extends BaseFacetedWorldGenerator { + @In + private WorldGeneratorPluginLibrary worldGeneratorPluginLibrary; + + public LaSSimpleWorldGenerator(SimpleUri uri) { + super(uri); + } + + @Override + protected WorldBuilder createWorld() { + return new WorldBuilder(worldGeneratorPluginLibrary) + .addProvider(new LaSSurfaceProvider()) + .addProvider(new SeaLevelProvider(0)) + .addProvider(new BaseProvider()) + .addRasterizer(new LaSSimpleWorldRasterizer()) + .addRasterizer(new BaseRasterizer()); + } +} diff --git a/src/main/java/org/terasology/las/LaSSimpleWorldRasterizer.java b/src/main/java/org/terasology/las/LaSSimpleWorldRasterizer.java new file mode 100644 index 00000000..79bf8351 --- /dev/null +++ b/src/main/java/org/terasology/las/LaSSimpleWorldRasterizer.java @@ -0,0 +1,46 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las; + +import org.terasology.math.ChunkMath; +import org.terasology.math.geom.Vector3i; +import org.terasology.registry.CoreRegistry; +import org.terasology.world.block.Block; +import org.terasology.world.block.BlockManager; +import org.terasology.world.chunks.CoreChunk; +import org.terasology.world.generation.Region; +import org.terasology.world.generation.WorldRasterizer; +import org.terasology.world.generation.facets.SurfaceHeightFacet; + +public class LaSSimpleWorldRasterizer implements WorldRasterizer { + private Block dirt; + + @Override + public void initialize() { + dirt = CoreRegistry.get(BlockManager.class).getBlock("Core:Dirt"); + } + + @Override + public void generateChunk(CoreChunk chunk, Region chunkRegion) { + SurfaceHeightFacet surfaceHeightFacet = chunkRegion.getFacet(SurfaceHeightFacet.class); + for (Vector3i position : chunkRegion.getRegion()) { + float surfaceHeight = surfaceHeightFacet.getWorld(position.x, position.z); + if (position.y < surfaceHeight) { + chunk.setBlock(ChunkMath.calcBlockPos(position), dirt); + } + } + } +} diff --git a/src/main/java/org/terasology/las/LaSSurfaceProvider.java b/src/main/java/org/terasology/las/LaSSurfaceProvider.java new file mode 100644 index 00000000..80abbb0d --- /dev/null +++ b/src/main/java/org/terasology/las/LaSSurfaceProvider.java @@ -0,0 +1,50 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las; + +import org.terasology.math.geom.BaseVector2i; +import org.terasology.math.geom.Rect2i; +import org.terasology.world.generation.Border3D; +import org.terasology.world.generation.FacetProvider; +import org.terasology.world.generation.GeneratingRegion; +import org.terasology.world.generation.Produces; +import org.terasology.world.generation.facets.SurfaceHeightFacet; + +@Produces(SurfaceHeightFacet.class) +public class LaSSurfaceProvider implements FacetProvider { + + @Override + public void setSeed(long seed) { + } + + @Override + public void process(GeneratingRegion region) { + // Create our surface height facet (we will get into borders later) + Border3D border = region.getBorderForFacet(SurfaceHeightFacet.class); + SurfaceHeightFacet facet = new SurfaceHeightFacet(region.getRegion(), border); + + // Loop through every position in our 2d array + Rect2i processRegion = facet.getWorldRegion(); + for (BaseVector2i position: processRegion.contents()) { + facet.setWorld(position, 10f); + } + + // Pass our newly created and populated facet to the region + region.setRegionFacet(SurfaceHeightFacet.class, facet); + } + + +} diff --git a/src/main/java/org/terasology/las/LaSWorldGenerator.java b/src/main/java/org/terasology/las/LaSWorldGenerator.java index 2fdae65d..fe65d9ea 100644 --- a/src/main/java/org/terasology/las/LaSWorldGenerator.java +++ b/src/main/java/org/terasology/las/LaSWorldGenerator.java @@ -199,6 +199,5 @@ protected WorldBuilder createWorld() { .addRasterizer(new LaSFloraRasterizer()) .addRasterizer(new TreeRasterizer()); return worldBuilder; - //return super.createWorld(); } } diff --git a/src/main/java/org/terasology/las/bases/Base.java b/src/main/java/org/terasology/las/bases/Base.java new file mode 100644 index 00000000..3a0d6d59 --- /dev/null +++ b/src/main/java/org/terasology/las/bases/Base.java @@ -0,0 +1,22 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las.bases; + +public class Base { + public int getExtent() { + return 4; //use this to adjust base size + } +} diff --git a/src/main/java/org/terasology/las/bases/BaseFacet.java b/src/main/java/org/terasology/las/bases/BaseFacet.java new file mode 100644 index 00000000..99f33590 --- /dev/null +++ b/src/main/java/org/terasology/las/bases/BaseFacet.java @@ -0,0 +1,26 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las.bases; + +import org.terasology.math.Region3i; +import org.terasology.world.generation.Border3D; +import org.terasology.world.generation.facets.base.SparseObjectFacet3D; + +public class BaseFacet extends SparseObjectFacet3D { + public BaseFacet(Region3i targetRegion, Border3D border) { + super(targetRegion, border); + } +} diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java new file mode 100644 index 00000000..8668e443 --- /dev/null +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -0,0 +1,62 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las.bases; + +import org.terasology.math.TeraMath; +import org.terasology.math.geom.Rect2i; +import org.terasology.world.generation.*; +import org.terasology.world.generation.facets.SurfaceHeightFacet; + +@Produces(BaseFacet.class) +@Requires(@Facet(SurfaceHeightFacet.class)) +public class BaseProvider implements FacetProvider { + + @Override + public void setSeed(long seed) { + } + + @Override + public void process(GeneratingRegion region) { + + //Don't forget you sometimes have to extend the borders. + //extendBy(top, bottom, sides) is the method used for this. + + Border3D border = region.getBorderForFacet(BaseFacet.class).extendBy(0, 8, 4); + BaseFacet facet = new BaseFacet(region.getRegion(), border); + SurfaceHeightFacet surfaceHeightFacet = region.getRegionFacet(SurfaceHeightFacet.class); + + Rect2i worldRegion = surfaceHeightFacet.getWorldRegion(); + + for (int wz = worldRegion.minY(); wz <= worldRegion.maxY(); wz++) { + for (int wx = worldRegion.minX(); wx <= worldRegion.maxX(); wx++) { + int surfaceHeight = TeraMath.floorToInt(surfaceHeightFacet.getWorld(wx, wz)); + if (surfaceHeight >= facet.getWorldRegion().minY() && + surfaceHeight <= facet.getWorldRegion().maxY()) { + //hardcoding coordinates for base 1 + if (wx == 30 && wz == 0) { + facet.setWorld(wx, surfaceHeight, wz, new Base()); + } + //hardcoding coordinates for base 2 + if (wx == -30 && wz == 0) { + facet.setWorld(wx, surfaceHeight, wz, new Base()); + } + } + } + } + + region.setRegionFacet(BaseFacet.class, facet); + } +} diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java new file mode 100644 index 00000000..054378c5 --- /dev/null +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -0,0 +1,61 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.las.bases; + +import java.util.Map.Entry; + +import org.terasology.math.ChunkMath; +import org.terasology.math.Region3i; +import org.terasology.math.geom.BaseVector3i; +import org.terasology.math.geom.Vector3i; +import org.terasology.registry.CoreRegistry; +import org.terasology.world.block.Block; +import org.terasology.world.block.BlockManager; +import org.terasology.world.chunks.CoreChunk; +import org.terasology.world.generation.Region; +import org.terasology.world.generation.WorldRasterizer; + +public class BaseRasterizer implements WorldRasterizer { + private Block stone; + + @Override + public void initialize() { + stone = CoreRegistry.get(BlockManager.class).getBlock("Core:Stone"); + } + + @Override + public void generateChunk(CoreChunk chunk, Region chunkRegion) { + BaseFacet baseFacet = chunkRegion.getFacet(BaseFacet.class); + + for (Entry entry : baseFacet.getWorldEntries().entrySet()) { + + Vector3i centerBasePosition = new Vector3i(entry.getKey()); + int extent = entry.getValue().getExtent(); + centerBasePosition.add(0, extent, 0); + //Region3i walls = Region3i.createFromCenterExtents(centerBasePosition, extent); + Vector3i min = new Vector3i(centerBasePosition.x() - extent + 2, centerBasePosition.y() - extent, centerBasePosition.z() - extent); + Vector3i max = new Vector3i(centerBasePosition.x() + extent - 2, centerBasePosition.y() - extent, centerBasePosition.z() + extent); + Region3i walls = Region3i.createFromMinMax(min, max); + + // loop through each of the positions in the base + for (Vector3i newBlockPosition : walls) { + if (chunkRegion.getRegion().encompasses(newBlockPosition)) { + chunk.setBlock(ChunkMath.calcBlockPos(newBlockPosition), stone); + } + } + } + } +} \ No newline at end of file From dd4a4370c18f8a78ac9b1d7bf400a509bdf3ca32 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sat, 19 May 2018 08:20:04 -0500 Subject: [PATCH 02/15] Black and Red flags now spawn at center of base --- .../terasology/las/bases/BaseRasterizer.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index 054378c5..914e0168 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -30,10 +30,14 @@ public class BaseRasterizer implements WorldRasterizer { private Block stone; + private Block redFlag; + private Block blackFlag; @Override public void initialize() { stone = CoreRegistry.get(BlockManager.class).getBlock("Core:Stone"); + redFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:redFlag"); + blackFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:blackFlag"); } @Override @@ -45,16 +49,28 @@ public void generateChunk(CoreChunk chunk, Region chunkRegion) { Vector3i centerBasePosition = new Vector3i(entry.getKey()); int extent = entry.getValue().getExtent(); centerBasePosition.add(0, extent, 0); - //Region3i walls = Region3i.createFromCenterExtents(centerBasePosition, extent); Vector3i min = new Vector3i(centerBasePosition.x() - extent + 2, centerBasePosition.y() - extent, centerBasePosition.z() - extent); Vector3i max = new Vector3i(centerBasePosition.x() + extent - 2, centerBasePosition.y() - extent, centerBasePosition.z() + extent); Region3i walls = Region3i.createFromMinMax(min, max); // loop through each of the positions in the base for (Vector3i newBlockPosition : walls) { + //place base stone if (chunkRegion.getRegion().encompasses(newBlockPosition)) { chunk.setBlock(ChunkMath.calcBlockPos(newBlockPosition), stone); } + //place flags + if (centerBasePosition.x > 0){ + if (chunkRegion.getRegion().encompasses(centerBasePosition)) { + chunk.setBlock(ChunkMath.calcBlockPos(centerBasePosition.x(), centerBasePosition.y() - extent + 1, centerBasePosition.z() + 2), redFlag); + } + } + if (centerBasePosition.x < 0){ + if (chunkRegion.getRegion().encompasses(centerBasePosition)) { + chunk.setBlock(ChunkMath.calcBlockPos(centerBasePosition.x(), centerBasePosition.y() - extent + 1, centerBasePosition.z() + 2), blackFlag); + } + } + } } } From 8bebe85bbafc24296e0116eae0de8c792f646788 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sat, 19 May 2018 08:33:46 -0500 Subject: [PATCH 03/15] Changed base material to HardStone To make it harder for players to destroy their base --- src/main/java/org/terasology/las/bases/BaseRasterizer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index 914e0168..deafa6de 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -35,7 +35,7 @@ public class BaseRasterizer implements WorldRasterizer { @Override public void initialize() { - stone = CoreRegistry.get(BlockManager.class).getBlock("Core:Stone"); + stone = CoreRegistry.get(BlockManager.class).getBlock("Core:HardStone"); redFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:redFlag"); blackFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:blackFlag"); } From e20bdb9a9cab832e8350cf434589079970979fc2 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sun, 20 May 2018 14:31:00 -0500 Subject: [PATCH 04/15] Adding component that lets flags be picked up on activate Also removes starting inventory code --- .../TakeBlockOnActivateComponent.java | 22 ++++++ .../controllers/LASSystem.java | 26 ++----- .../TakeBlockOnActivationSystem.java | 74 +++++++++++++++++++ 3 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 src/main/java/org/terasology/ligthandshadow/componentsystem/components/TakeBlockOnActivateComponent.java create mode 100644 src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/TakeBlockOnActivateComponent.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/TakeBlockOnActivateComponent.java new file mode 100644 index 00000000..d04dc505 --- /dev/null +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/TakeBlockOnActivateComponent.java @@ -0,0 +1,22 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.ligthandshadow.componentsystem.components; + +import org.terasology.entitySystem.Component; + +public class TakeBlockOnActivateComponent implements Component { + +} diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java index 7ba4b7f4..d0333405 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java @@ -47,30 +47,16 @@ public class LASSystem extends BaseComponentSystem { @ReceiveEvent public void onPlayerSpawn(OnPlayerSpawnedEvent event, EntityRef player, InventoryComponent inventory) { BlockItemFactory blockFactory = new BlockItemFactory(entityManager); - for (int i = 0; i < inventoryManager.getNumSlots(player); i++) { - EntityRef itemInSlot = inventoryManager.getItemInSlot(player, i); - player.send(new RemoveItemAction(player, itemInSlot, true)); - } - player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobWalkToBlock"), 1)); - player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobBuildBlock"), 2)); - player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobRemoveBlock"), 3)); +// +// player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobWalkToBlock"), 1)); +// player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobBuildBlock"), 2)); +// +// player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("redSpawn")), 4)); +// player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("blackSpawn")), 5)); - player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("redSpawn")), 4)); - player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("blackSpawn")), 5)); - giveItem(player, 6, "clubsAce"); - giveItem(player, 7, "diamondsAce"); - giveItem(player, 8, "heartsAce"); - giveItem(player, 9, "spadesAce"); } - private void giveItem(EntityRef player, int slot, String name) { - int stackSize = 64; - for (int i = 0; i < stackSize; i++) { - EntityRef item = entityManager.create(name); - player.send(new GiveItemAction(player, item, slot)); - } - } @Override public void initialise() { diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java new file mode 100644 index 00000000..b98360f5 --- /dev/null +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java @@ -0,0 +1,74 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.ligthandshadow.componentsystem.controllers; + +import com.google.api.client.util.Lists; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.terasology.entitySystem.entity.EntityManager; +import org.terasology.entitySystem.entity.EntityRef; +import org.terasology.entitySystem.event.ReceiveEvent; +import org.terasology.entitySystem.systems.BaseComponentSystem; +import org.terasology.entitySystem.systems.RegisterMode; +import org.terasology.entitySystem.systems.RegisterSystem; +import org.terasology.ligthandshadow.componentsystem.components.TakeBlockOnActivateComponent; +import org.terasology.logic.common.ActivateEvent; +import org.terasology.logic.inventory.InventoryManager; +import org.terasology.logic.inventory.action.GiveItemAction; +import org.terasology.math.geom.Vector3f; +import org.terasology.registry.In; +import org.terasology.world.BlockEntityRegistry; +import org.terasology.world.WorldProvider; +import org.terasology.world.block.Block; +import org.terasology.world.block.BlockComponent; +import org.terasology.world.block.BlockManager; +import org.terasology.world.block.items.BlockItemFactory; + + + +@RegisterSystem(RegisterMode.AUTHORITY) +public class TakeBlockOnActivationSystem extends BaseComponentSystem { + @In + private WorldProvider worldProvider; + @In + private BlockManager blockManager; + @In + private InventoryManager inventoryManager; + @In + private BlockEntityRegistry blockEntityRegistry; + @In + private EntityManager entityManager; + + + + private static final Logger LOG = LoggerFactory.getLogger(TakeBlockOnActivationSystem.class); + + @ReceiveEvent(components = {TakeBlockOnActivateComponent.class, BlockComponent.class}) + public void onActivate(ActivateEvent event, EntityRef entity) { + BlockItemFactory blockFactory = new BlockItemFactory(entityManager); + + BlockComponent blockComponent = entity.getComponent(BlockComponent.class); + + EntityRef flagTaker = event.getInstigator(); + if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:blackFlag")) { + flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag")))); + } else { + flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag")))); + } + worldProvider.setBlock(blockComponent.getPosition(), blockManager.getBlock(BlockManager.AIR_ID)); + entity.destroy(); + } +} From 84e812e0eea83aa94aeb9a8f507a0161a08e751b Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sun, 20 May 2018 15:03:48 -0500 Subject: [PATCH 05/15] Revert "Changed base material to HardStone" This reverts commit 8bebe85bbafc24296e0116eae0de8c792f646788. --- src/main/java/org/terasology/las/bases/BaseRasterizer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index deafa6de..914e0168 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -35,7 +35,7 @@ public class BaseRasterizer implements WorldRasterizer { @Override public void initialize() { - stone = CoreRegistry.get(BlockManager.class).getBlock("Core:HardStone"); + stone = CoreRegistry.get(BlockManager.class).getBlock("Core:Stone"); redFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:redFlag"); blackFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:blackFlag"); } From e9d4edbf4c8f36fc4b24a080990450f9b5f56903 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sun, 20 May 2018 16:37:30 -0500 Subject: [PATCH 06/15] Revert "Revert "Changed base material to HardStone"" This reverts commit 84e812e0eea83aa94aeb9a8f507a0161a08e751b. --- src/main/java/org/terasology/las/bases/BaseRasterizer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index 914e0168..deafa6de 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -35,7 +35,7 @@ public class BaseRasterizer implements WorldRasterizer { @Override public void initialize() { - stone = CoreRegistry.get(BlockManager.class).getBlock("Core:Stone"); + stone = CoreRegistry.get(BlockManager.class).getBlock("Core:HardStone"); redFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:redFlag"); blackFlag = CoreRegistry.get(BlockManager.class).getBlock("LightAndShadowResources:blackFlag"); } From 63ae1b429a7562a6c81f4a20c4533ef705902ea2 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Sun, 20 May 2018 16:40:55 -0500 Subject: [PATCH 07/15] Removes commented out inventory code and changes flag logic Changes flag logic to allow for possibly more types of flags. --- .../componentsystem/controllers/LASSystem.java | 10 +--------- .../controllers/TakeBlockOnActivationSystem.java | 3 ++- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java index d0333405..9635beec 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java @@ -44,17 +44,9 @@ public class LASSystem extends BaseComponentSystem { @In private BlockManager blockManager; - @ReceiveEvent + @ReceiveEvent //give player inventory items on game start public void onPlayerSpawn(OnPlayerSpawnedEvent event, EntityRef player, InventoryComponent inventory) { BlockItemFactory blockFactory = new BlockItemFactory(entityManager); -// -// player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobWalkToBlock"), 1)); -// player.send(new GiveItemAction(player, entityManager.create("Pathfinding:jobBuildBlock"), 2)); -// -// player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("redSpawn")), 4)); -// player.send(new GiveItemAction(player, blockFactory.newInstance(blockManager.getBlockFamily("blackSpawn")), 5)); - - } diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java index b98360f5..fbd67bce 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java @@ -65,7 +65,8 @@ public void onActivate(ActivateEvent event, EntityRef entity) { EntityRef flagTaker = event.getInstigator(); if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:blackFlag")) { flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag")))); - } else { + } + if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:redFlag")) { flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag")))); } worldProvider.setBlock(blockComponent.getPosition(), blockManager.getBlock(BlockManager.AIR_ID)); From 5ed5de34eb2c346c430732815ef5e5ecd7af36c0 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Mon, 21 May 2018 10:29:01 -0500 Subject: [PATCH 08/15] Updates base spawning info so no longer cut by rasterizer chunking Base size and creation is now handled by BaseProvider, with BaseRasterizer just placing appropriate blocks --- .../java/org/terasology/las/bases/Base.java | 17 ++++++- .../org/terasology/las/bases/BaseFacet.java | 13 ++++++ .../terasology/las/bases/BaseProvider.java | 46 +++++++++---------- .../terasology/las/bases/BaseRasterizer.java | 41 ++++++----------- 4 files changed, 63 insertions(+), 54 deletions(-) diff --git a/src/main/java/org/terasology/las/bases/Base.java b/src/main/java/org/terasology/las/bases/Base.java index 3a0d6d59..c0cd9838 100644 --- a/src/main/java/org/terasology/las/bases/Base.java +++ b/src/main/java/org/terasology/las/bases/Base.java @@ -15,8 +15,21 @@ */ package org.terasology.las.bases; +import org.terasology.math.Region3i; + public class Base { - public int getExtent() { - return 4; //use this to adjust base size + private Region3i area; + private Region3i flagArea; + + public Base(Region3i baseRegion, Region3i flagRegion) { + this.area = baseRegion; + this.flagArea = flagRegion; + } + + public Region3i getArea() { + return area; + } + public Region3i getFlagArea() { + return flagArea; } } diff --git a/src/main/java/org/terasology/las/bases/BaseFacet.java b/src/main/java/org/terasology/las/bases/BaseFacet.java index 99f33590..2e86e525 100644 --- a/src/main/java/org/terasology/las/bases/BaseFacet.java +++ b/src/main/java/org/terasology/las/bases/BaseFacet.java @@ -15,12 +15,25 @@ */ package org.terasology.las.bases; +import org.terasology.las.platform.FloatingPlatform; import org.terasology.math.Region3i; import org.terasology.world.generation.Border3D; +import org.terasology.world.generation.facets.base.BaseFacet2D; import org.terasology.world.generation.facets.base.SparseObjectFacet3D; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; + public class BaseFacet extends SparseObjectFacet3D { + private final Collection bases = new ArrayList<>(); public BaseFacet(Region3i targetRegion, Border3D border) { super(targetRegion, border); } + public void add(Base base) { + bases.add(base); + } + public Collection getBases() { + return Collections.unmodifiableCollection(bases); + } } diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index 8668e443..cc1cb618 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -15,14 +15,30 @@ */ package org.terasology.las.bases; -import org.terasology.math.TeraMath; -import org.terasology.math.geom.Rect2i; +import com.google.common.collect.ImmutableSet; +import org.terasology.math.Region3i; +import org.terasology.math.geom.Vector3i; import org.terasology.world.generation.*; import org.terasology.world.generation.facets.SurfaceHeightFacet; +import java.util.Collection; @Produces(BaseFacet.class) @Requires(@Facet(SurfaceHeightFacet.class)) + public class BaseProvider implements FacetProvider { + int baseExtent = 2; //determines size of base (# of tiles from center) + + Vector3i centerRedBasePosition = new Vector3i(30, 10, 0); + Region3i redBaseRegion = Region3i.createFromMinMax(new Vector3i(centerRedBasePosition.x() - baseExtent, centerRedBasePosition.y(), centerRedBasePosition.z() - baseExtent), new Vector3i(centerRedBasePosition.x() + baseExtent, centerRedBasePosition.y(), centerRedBasePosition.z() + baseExtent)); + Region3i redFlagRegion = Region3i.createFromMinMax(new Vector3i(centerRedBasePosition.x(), centerRedBasePosition.y() + 1, centerRedBasePosition.z()), new Vector3i(centerRedBasePosition.x(), centerRedBasePosition.y() + 1, centerRedBasePosition.z())); + + Vector3i centerBlackBasePosition = new Vector3i(-30, 10, 0); + Region3i blackBaseRegion = Region3i.createFromMinMax(new Vector3i(centerBlackBasePosition.x() - baseExtent, centerBlackBasePosition.y(), centerBlackBasePosition.z() - baseExtent), new Vector3i(centerBlackBasePosition.x() + baseExtent, centerBlackBasePosition.y(), centerBlackBasePosition.z() + baseExtent)); + Region3i blackFlagRegion = Region3i.createFromMinMax(new Vector3i(centerBlackBasePosition.x(), centerBlackBasePosition.y() + 1, centerBlackBasePosition.z()), new Vector3i(centerBlackBasePosition.x(), centerBlackBasePosition.y() + 1, centerBlackBasePosition.z())); + + private Collection fixedBases = ImmutableSet.of( + new Base(redBaseRegion, redFlagRegion), + new Base(blackBaseRegion, blackFlagRegion)); @Override public void setSeed(long seed) { @@ -30,31 +46,11 @@ public void setSeed(long seed) { @Override public void process(GeneratingRegion region) { - - //Don't forget you sometimes have to extend the borders. - //extendBy(top, bottom, sides) is the method used for this. - Border3D border = region.getBorderForFacet(BaseFacet.class).extendBy(0, 8, 4); BaseFacet facet = new BaseFacet(region.getRegion(), border); - SurfaceHeightFacet surfaceHeightFacet = region.getRegionFacet(SurfaceHeightFacet.class); - - Rect2i worldRegion = surfaceHeightFacet.getWorldRegion(); - - for (int wz = worldRegion.minY(); wz <= worldRegion.maxY(); wz++) { - for (int wx = worldRegion.minX(); wx <= worldRegion.maxX(); wx++) { - int surfaceHeight = TeraMath.floorToInt(surfaceHeightFacet.getWorld(wx, wz)); - if (surfaceHeight >= facet.getWorldRegion().minY() && - surfaceHeight <= facet.getWorldRegion().maxY()) { - //hardcoding coordinates for base 1 - if (wx == 30 && wz == 0) { - facet.setWorld(wx, surfaceHeight, wz, new Base()); - } - //hardcoding coordinates for base 2 - if (wx == -30 && wz == 0) { - facet.setWorld(wx, surfaceHeight, wz, new Base()); - } - } - } + + for (Base base : fixedBases) { + facet.add(base); } region.setRegionFacet(BaseFacet.class, facet); diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index deafa6de..f94ed51f 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -15,11 +15,8 @@ */ package org.terasology.las.bases; -import java.util.Map.Entry; - import org.terasology.math.ChunkMath; import org.terasology.math.Region3i; -import org.terasology.math.geom.BaseVector3i; import org.terasology.math.geom.Vector3i; import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; @@ -44,33 +41,23 @@ public void initialize() { public void generateChunk(CoreChunk chunk, Region chunkRegion) { BaseFacet baseFacet = chunkRegion.getFacet(BaseFacet.class); - for (Entry entry : baseFacet.getWorldEntries().entrySet()) { - - Vector3i centerBasePosition = new Vector3i(entry.getKey()); - int extent = entry.getValue().getExtent(); - centerBasePosition.add(0, extent, 0); - Vector3i min = new Vector3i(centerBasePosition.x() - extent + 2, centerBasePosition.y() - extent, centerBasePosition.z() - extent); - Vector3i max = new Vector3i(centerBasePosition.x() + extent - 2, centerBasePosition.y() - extent, centerBasePosition.z() + extent); - Region3i walls = Region3i.createFromMinMax(min, max); + for (Base base : baseFacet.getBases()) { + Region3i baseRegion = base.getArea(); + Region3i flagRegion = base.getFlagArea(); - // loop through each of the positions in the base - for (Vector3i newBlockPosition : walls) { - //place base stone - if (chunkRegion.getRegion().encompasses(newBlockPosition)) { - chunk.setBlock(ChunkMath.calcBlockPos(newBlockPosition), stone); - } - //place flags - if (centerBasePosition.x > 0){ - if (chunkRegion.getRegion().encompasses(centerBasePosition)) { - chunk.setBlock(ChunkMath.calcBlockPos(centerBasePosition.x(), centerBasePosition.y() - extent + 1, centerBasePosition.z() + 2), redFlag); - } + //place blocks for each of the bases and flags + for (Vector3i baseBlockPosition : baseRegion) { + if (chunkRegion.getRegion().encompasses(baseBlockPosition)) { + chunk.setBlock(ChunkMath.calcBlockPos(baseBlockPosition), stone); } - if (centerBasePosition.x < 0){ - if (chunkRegion.getRegion().encompasses(centerBasePosition)) { - chunk.setBlock(ChunkMath.calcBlockPos(centerBasePosition.x(), centerBasePosition.y() - extent + 1, centerBasePosition.z() + 2), blackFlag); - } + } + for (Vector3i flagPosition : flagRegion) { + //flag type depends on the x position of the flag to determine which base it's at + if (chunkRegion.getRegion().encompasses(flagPosition) && flagPosition.x > 0) { + chunk.setBlock(ChunkMath.calcBlockPos(flagPosition), redFlag); + } else if (chunkRegion.getRegion().encompasses(flagPosition)) { + chunk.setBlock(ChunkMath.calcBlockPos(flagPosition), blackFlag); } - } } } From 69ba45336bbbaff5053543a961a64274adfa9333 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 12:08:03 -0500 Subject: [PATCH 09/15] Refactors base region creation and sets vars as constant Also changes border size to 0 --- .../terasology/las/bases/BaseProvider.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index cc1cb618..64805a16 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -26,15 +26,16 @@ @Requires(@Facet(SurfaceHeightFacet.class)) public class BaseProvider implements FacetProvider { - int baseExtent = 2; //determines size of base (# of tiles from center) + /** Base is a square of side 2 * BASE_EXTENT + 1 with the flag at the center */ + static final int BASE_EXTENT = 2; /** determines size of base (# of tiles from center) */ + static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); /** position of red base */ + static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); /** position of black base */ - Vector3i centerRedBasePosition = new Vector3i(30, 10, 0); - Region3i redBaseRegion = Region3i.createFromMinMax(new Vector3i(centerRedBasePosition.x() - baseExtent, centerRedBasePosition.y(), centerRedBasePosition.z() - baseExtent), new Vector3i(centerRedBasePosition.x() + baseExtent, centerRedBasePosition.y(), centerRedBasePosition.z() + baseExtent)); - Region3i redFlagRegion = Region3i.createFromMinMax(new Vector3i(centerRedBasePosition.x(), centerRedBasePosition.y() + 1, centerRedBasePosition.z()), new Vector3i(centerRedBasePosition.x(), centerRedBasePosition.y() + 1, centerRedBasePosition.z())); + Region3i redBaseRegion = CreateBaseRegionFromVector(CENTER_RED_BASE_POSITION); + Region3i blackBaseRegion = CreateBaseRegionFromVector(CENTER_BLACK_BASE_POSITION); - Vector3i centerBlackBasePosition = new Vector3i(-30, 10, 0); - Region3i blackBaseRegion = Region3i.createFromMinMax(new Vector3i(centerBlackBasePosition.x() - baseExtent, centerBlackBasePosition.y(), centerBlackBasePosition.z() - baseExtent), new Vector3i(centerBlackBasePosition.x() + baseExtent, centerBlackBasePosition.y(), centerBlackBasePosition.z() + baseExtent)); - Region3i blackFlagRegion = Region3i.createFromMinMax(new Vector3i(centerBlackBasePosition.x(), centerBlackBasePosition.y() + 1, centerBlackBasePosition.z()), new Vector3i(centerBlackBasePosition.x(), centerBlackBasePosition.y() + 1, centerBlackBasePosition.z())); + Region3i redFlagRegion = CreateFlagRegionFromVector(CENTER_RED_BASE_POSITION); + Region3i blackFlagRegion = CreateFlagRegionFromVector(CENTER_BLACK_BASE_POSITION); private Collection fixedBases = ImmutableSet.of( new Base(redBaseRegion, redFlagRegion), @@ -46,13 +47,19 @@ public void setSeed(long seed) { @Override public void process(GeneratingRegion region) { - Border3D border = region.getBorderForFacet(BaseFacet.class).extendBy(0, 8, 4); + Border3D border = region.getBorderForFacet(BaseFacet.class).extendBy(0, 0, 0); BaseFacet facet = new BaseFacet(region.getRegion(), border); for (Base base : fixedBases) { facet.add(base); } - region.setRegionFacet(BaseFacet.class, facet); } + + private Region3i CreateBaseRegionFromVector(Vector3i centerBasePosition) { + return Region3i.createFromMinMax(new Vector3i(centerBasePosition.x() - BASE_EXTENT, centerBasePosition.y(), centerBasePosition.z() - BASE_EXTENT), new Vector3i(centerBasePosition.x() + BASE_EXTENT, centerBasePosition.y(), centerBasePosition.z() + BASE_EXTENT)); + } + private Region3i CreateFlagRegionFromVector(Vector3i centerBasePosition) { + return Region3i.createFromMinMax(new Vector3i(centerBasePosition.x(), centerBasePosition.y() + 1, centerBasePosition.z()), new Vector3i(centerBasePosition.x(), centerBasePosition.y() + 1, centerBasePosition.z())); + } } From 998827fbd6c4d83e763cb87e89f8f6a159bca1df Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 12:27:04 -0500 Subject: [PATCH 10/15] Changed depricated GiveItemAcion to InventoryManager.giveItem --- .../controllers/TakeBlockOnActivationSystem.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java index fbd67bce..704a7f52 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java @@ -26,6 +26,7 @@ import org.terasology.entitySystem.systems.RegisterSystem; import org.terasology.ligthandshadow.componentsystem.components.TakeBlockOnActivateComponent; import org.terasology.logic.common.ActivateEvent; +import org.terasology.logic.inventory.InventoryAuthoritySystem; import org.terasology.logic.inventory.InventoryManager; import org.terasology.logic.inventory.action.GiveItemAction; import org.terasology.math.geom.Vector3f; @@ -59,15 +60,16 @@ public class TakeBlockOnActivationSystem extends BaseComponentSystem { @ReceiveEvent(components = {TakeBlockOnActivateComponent.class, BlockComponent.class}) public void onActivate(ActivateEvent event, EntityRef entity) { BlockItemFactory blockFactory = new BlockItemFactory(entityManager); + inventoryManager = new InventoryAuthoritySystem(); BlockComponent blockComponent = entity.getComponent(BlockComponent.class); EntityRef flagTaker = event.getInstigator(); if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:blackFlag")) { - flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag")))); + inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag"))); } if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:redFlag")) { - flagTaker.send(new GiveItemAction(flagTaker, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag")))); + inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag"))); } worldProvider.setBlock(blockComponent.getPosition(), blockManager.getBlock(BlockManager.AIR_ID)); entity.destroy(); From b5db28249d91fbc9b764d977fe0f426454f67f66 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 13:56:55 -0500 Subject: [PATCH 11/15] Changing javadoc formatting and removing border extension --- .../org/terasology/las/bases/BaseProvider.java | 14 +++++++++----- .../componentsystem/controllers/LASSystem.java | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index 64805a16..db64bf84 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -26,10 +26,14 @@ @Requires(@Facet(SurfaceHeightFacet.class)) public class BaseProvider implements FacetProvider { - /** Base is a square of side 2 * BASE_EXTENT + 1 with the flag at the center */ - static final int BASE_EXTENT = 2; /** determines size of base (# of tiles from center) */ - static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); /** position of red base */ - static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); /** position of black base */ + /** Determines size of base + * Base is a square of side 2 * BASE_EXTENT + 1 with the flag at the center + */ + static final int BASE_EXTENT = 2; + /** Position of Red base */ + static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); + /** Position of Black base */ + static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); Region3i redBaseRegion = CreateBaseRegionFromVector(CENTER_RED_BASE_POSITION); Region3i blackBaseRegion = CreateBaseRegionFromVector(CENTER_BLACK_BASE_POSITION); @@ -47,7 +51,7 @@ public void setSeed(long seed) { @Override public void process(GeneratingRegion region) { - Border3D border = region.getBorderForFacet(BaseFacet.class).extendBy(0, 0, 0); + Border3D border = region.getBorderForFacet(BaseFacet.class); BaseFacet facet = new BaseFacet(region.getRegion(), border); for (Base base : fixedBases) { diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java index 9635beec..f945a3e0 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java @@ -44,7 +44,8 @@ public class LASSystem extends BaseComponentSystem { @In private BlockManager blockManager; - @ReceiveEvent //give player inventory items on game start + /** give player inventory items on game start */ + @ReceiveEvent public void onPlayerSpawn(OnPlayerSpawnedEvent event, EntityRef player, InventoryComponent inventory) { BlockItemFactory blockFactory = new BlockItemFactory(entityManager); } From f70b5e1147e4047ff0c8fafb9a3912311edd3dfa Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 16:54:58 -0500 Subject: [PATCH 12/15] Changes logic to check flag team on pickup Also changes constants to private --- .../org/terasology/las/bases/BaseProvider.java | 6 +++--- .../componentsystem/components/LASTeam.java | 1 - .../controllers/TakeBlockOnActivationSystem.java | 14 ++++++-------- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index db64bf84..66ae6096 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -29,11 +29,11 @@ public class BaseProvider implements FacetProvider { /** Determines size of base * Base is a square of side 2 * BASE_EXTENT + 1 with the flag at the center */ - static final int BASE_EXTENT = 2; + private static final int BASE_EXTENT = 2; /** Position of Red base */ - static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); + private static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); /** Position of Black base */ - static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); + private static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); Region3i redBaseRegion = CreateBaseRegionFromVector(CENTER_RED_BASE_POSITION); Region3i blackBaseRegion = CreateBaseRegionFromVector(CENTER_BLACK_BASE_POSITION); diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/LASTeam.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/LASTeam.java index 35319771..ef9518ae 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/LASTeam.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/LASTeam.java @@ -24,7 +24,6 @@ public final class LASTeam implements Component { public String team; public LASTeam() { - // serialization } public LASTeam(String team) { diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java index 704a7f52..6329d4d5 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java @@ -15,7 +15,6 @@ */ package org.terasology.ligthandshadow.componentsystem.controllers; -import com.google.api.client.util.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.terasology.entitySystem.entity.EntityManager; @@ -24,16 +23,14 @@ import org.terasology.entitySystem.systems.BaseComponentSystem; import org.terasology.entitySystem.systems.RegisterMode; import org.terasology.entitySystem.systems.RegisterSystem; +import org.terasology.ligthandshadow.componentsystem.components.LASTeam; import org.terasology.ligthandshadow.componentsystem.components.TakeBlockOnActivateComponent; import org.terasology.logic.common.ActivateEvent; import org.terasology.logic.inventory.InventoryAuthoritySystem; import org.terasology.logic.inventory.InventoryManager; -import org.terasology.logic.inventory.action.GiveItemAction; -import org.terasology.math.geom.Vector3f; import org.terasology.registry.In; import org.terasology.world.BlockEntityRegistry; import org.terasology.world.WorldProvider; -import org.terasology.world.block.Block; import org.terasology.world.block.BlockComponent; import org.terasology.world.block.BlockManager; import org.terasology.world.block.items.BlockItemFactory; @@ -63,14 +60,15 @@ public void onActivate(ActivateEvent event, EntityRef entity) { inventoryManager = new InventoryAuthoritySystem(); BlockComponent blockComponent = entity.getComponent(BlockComponent.class); + LASTeam teamComponent = entity.getComponent(LASTeam.class); EntityRef flagTaker = event.getInstigator(); - if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:blackFlag")) { - inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag"))); - } - if (blockComponent.getBlock().getBlockFamily().getURI().toString().equals("LightAndShadowResources:redFlag")) { + if (teamComponent.team.equals("red")){ inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag"))); } + if (teamComponent.team.equals("black")){ + inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag"))); + } worldProvider.setBlock(blockComponent.getPosition(), blockManager.getBlock(BlockManager.AIR_ID)); entity.destroy(); } From 86ebb0addd89154454193fb607cc3ee9d2462260 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 17:04:17 -0500 Subject: [PATCH 13/15] Adds FlagComponent --- .../components/FlagComponent.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/org/terasology/ligthandshadow/componentsystem/components/FlagComponent.java diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/FlagComponent.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/FlagComponent.java new file mode 100644 index 00000000..3c8df4c1 --- /dev/null +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/FlagComponent.java @@ -0,0 +1,21 @@ +/* + * Copyright 2017 MovingBlocks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.terasology.ligthandshadow.componentsystem.components; + +import org.terasology.entitySystem.Component; + +public class FlagComponent implements Component { +} From 08e5e3393049d42f1d22e57dab1130d3d907dd8e Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Tue, 22 May 2018 17:22:02 -0500 Subject: [PATCH 14/15] Code cleanup on L&S Module --- .../terasology/las/LaSFloraRasterizer.java | 1 - .../java/org/terasology/las/LaSSpawner.java | 1 - .../terasology/las/LaSSurfaceProvider.java | 2 +- .../org/terasology/las/LaSWorldGenerator.java | 25 +++---------------- .../java/org/terasology/las/bases/Base.java | 1 + .../org/terasology/las/bases/BaseFacet.java | 5 ++-- .../terasology/las/bases/BaseProvider.java | 15 ++++++++--- .../las/dialog/action/SetTeamAction.java | 1 - .../action/SetTeamActionTypeHandler.java | 14 +++-------- .../las/platform/FloatingPlatformFacet.java | 8 +++--- .../platform/FloatingPlatformProvider.java | 12 +++------ .../las/platform/GuidanceNpcProvider.java | 2 +- .../components/SpawnerComponent.java | 3 +-- .../controllers/EnemySystem.java | 2 +- .../controllers/LASSystem.java | 6 ++--- .../TakeBlockOnActivationSystem.java | 6 ++--- .../ligthandshadow/logic/CardSystem.java | 8 +++--- 17 files changed, 43 insertions(+), 69 deletions(-) diff --git a/src/main/java/org/terasology/las/LaSFloraRasterizer.java b/src/main/java/org/terasology/las/LaSFloraRasterizer.java index 4873edda..2d4333b3 100644 --- a/src/main/java/org/terasology/las/LaSFloraRasterizer.java +++ b/src/main/java/org/terasology/las/LaSFloraRasterizer.java @@ -29,7 +29,6 @@ import org.terasology.world.chunks.CoreChunk; import org.terasology.world.generation.Region; - import java.util.List; import java.util.Map; diff --git a/src/main/java/org/terasology/las/LaSSpawner.java b/src/main/java/org/terasology/las/LaSSpawner.java index 0f5a170c..40d9f7da 100644 --- a/src/main/java/org/terasology/las/LaSSpawner.java +++ b/src/main/java/org/terasology/las/LaSSpawner.java @@ -18,7 +18,6 @@ import org.terasology.entitySystem.entity.EntityRef; import org.terasology.ligthandshadow.componentsystem.components.LASTeam; -import org.terasology.logic.characters.CharacterComponent; import org.terasology.logic.spawner.Spawner; import org.terasology.math.geom.Vector3f; import org.terasology.network.ClientComponent; diff --git a/src/main/java/org/terasology/las/LaSSurfaceProvider.java b/src/main/java/org/terasology/las/LaSSurfaceProvider.java index 80abbb0d..82c38db1 100644 --- a/src/main/java/org/terasology/las/LaSSurfaceProvider.java +++ b/src/main/java/org/terasology/las/LaSSurfaceProvider.java @@ -38,7 +38,7 @@ public void process(GeneratingRegion region) { // Loop through every position in our 2d array Rect2i processRegion = facet.getWorldRegion(); - for (BaseVector2i position: processRegion.contents()) { + for (BaseVector2i position : processRegion.contents()) { facet.setWorld(position, 10f); } diff --git a/src/main/java/org/terasology/las/LaSWorldGenerator.java b/src/main/java/org/terasology/las/LaSWorldGenerator.java index fe65d9ea..a5ab4823 100644 --- a/src/main/java/org/terasology/las/LaSWorldGenerator.java +++ b/src/main/java/org/terasology/las/LaSWorldGenerator.java @@ -16,11 +16,7 @@ package org.terasology.las; -import org.terasology.cities.BlockTheme; -import org.terasology.cities.CityWorldGenerator; -import org.terasology.cities.DefaultBlockType; -import org.terasology.cities.SimpleBiomeProvider; -import org.terasology.cities.bldg.Building; +import org.terasology.cities.*; import org.terasology.cities.bldg.BuildingFacetProvider; import org.terasology.cities.blocked.BlockedAreaFacetProvider; import org.terasology.cities.deco.ColumnRasterizer; @@ -34,7 +30,6 @@ import org.terasology.cities.flora.FloraFacetProvider; import org.terasology.cities.flora.TreeFacetProvider; import org.terasology.cities.lakes.LakeFacetProvider; -import org.terasology.cities.parcels.Parcel; import org.terasology.cities.parcels.ParcelFacetProvider; import org.terasology.cities.raster.standard.HollowBuildingPartRasterizer; import org.terasology.cities.raster.standard.RectPartRasterizer; @@ -42,13 +37,7 @@ import org.terasology.cities.raster.standard.StaircaseRasterizer; import org.terasology.cities.roads.RoadFacetProvider; import org.terasology.cities.roads.RoadRasterizer; -import org.terasology.cities.roof.ConicRoofRasterizer; -import org.terasology.cities.roof.DomeRoofRasterizer; -import org.terasology.cities.roof.FlatRoofRasterizer; -import org.terasology.cities.roof.HipRoofRasterizer; -import org.terasology.cities.roof.PentRoofRasterizer; -import org.terasology.cities.roof.RoofFacetProvider; -import org.terasology.cities.roof.SaddleRoofRasterizer; +import org.terasology.cities.roof.*; import org.terasology.cities.settlements.SettlementFacetProvider; import org.terasology.cities.sites.SiteFacetProvider; import org.terasology.cities.surface.InfiniteSurfaceHeightFacetProvider; @@ -59,17 +48,10 @@ import org.terasology.cities.window.RectWindowRasterizer; import org.terasology.cities.window.SimpleWindowRasterizer; import org.terasology.cities.window.WindowFacetProvider; -import org.terasology.commonworld.heightmap.HeightMap; -import org.terasology.core.world.generator.facetProviders.DefaultFloraProvider; -//import org.terasology.core.world.generator.facetProviders.EnsureSpawnableChunkZeroProvider; import org.terasology.core.world.generator.facetProviders.PerlinHumidityProvider; import org.terasology.core.world.generator.facetProviders.SeaLevelProvider; import org.terasology.core.world.generator.facetProviders.SurfaceToDensityProvider; -import org.terasology.core.world.generator.rasterizers.FloraRasterizer; import org.terasology.core.world.generator.rasterizers.SolidRasterizer; - -import org.terasology.cities.SettlementEntityProvider; - import org.terasology.core.world.generator.rasterizers.TreeRasterizer; import org.terasology.engine.SimpleUri; import org.terasology.entitySystem.entity.EntityRef; @@ -78,13 +60,12 @@ import org.terasology.registry.CoreRegistry; import org.terasology.registry.In; import org.terasology.world.block.BlockManager; -import org.terasology.world.generation.BaseFacetedWorldGenerator; import org.terasology.world.generation.World; import org.terasology.world.generation.WorldBuilder; import org.terasology.world.generator.RegisterWorldGenerator; import org.terasology.world.generator.plugin.WorldGeneratorPluginLibrary; -import org.terasology.las.LaSFloraRasterizer; +//import org.terasology.core.world.generator.facetProviders.EnsureSpawnableChunkZeroProvider; @RegisterWorldGenerator(id = "las", displayName = "Light & Shadow World") public class LaSWorldGenerator extends CityWorldGenerator { diff --git a/src/main/java/org/terasology/las/bases/Base.java b/src/main/java/org/terasology/las/bases/Base.java index c0cd9838..8d0a1604 100644 --- a/src/main/java/org/terasology/las/bases/Base.java +++ b/src/main/java/org/terasology/las/bases/Base.java @@ -29,6 +29,7 @@ public Base(Region3i baseRegion, Region3i flagRegion) { public Region3i getArea() { return area; } + public Region3i getFlagArea() { return flagArea; } diff --git a/src/main/java/org/terasology/las/bases/BaseFacet.java b/src/main/java/org/terasology/las/bases/BaseFacet.java index 2e86e525..0012bcf2 100644 --- a/src/main/java/org/terasology/las/bases/BaseFacet.java +++ b/src/main/java/org/terasology/las/bases/BaseFacet.java @@ -15,10 +15,8 @@ */ package org.terasology.las.bases; -import org.terasology.las.platform.FloatingPlatform; import org.terasology.math.Region3i; import org.terasology.world.generation.Border3D; -import org.terasology.world.generation.facets.base.BaseFacet2D; import org.terasology.world.generation.facets.base.SparseObjectFacet3D; import java.util.ArrayList; @@ -27,12 +25,15 @@ public class BaseFacet extends SparseObjectFacet3D { private final Collection bases = new ArrayList<>(); + public BaseFacet(Region3i targetRegion, Border3D border) { super(targetRegion, border); } + public void add(Base base) { bases.add(base); } + public Collection getBases() { return Collections.unmodifiableCollection(bases); } diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index 66ae6096..b1565592 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -20,19 +20,25 @@ import org.terasology.math.geom.Vector3i; import org.terasology.world.generation.*; import org.terasology.world.generation.facets.SurfaceHeightFacet; + import java.util.Collection; @Produces(BaseFacet.class) @Requires(@Facet(SurfaceHeightFacet.class)) public class BaseProvider implements FacetProvider { - /** Determines size of base + /** + * Determines size of base * Base is a square of side 2 * BASE_EXTENT + 1 with the flag at the center */ private static final int BASE_EXTENT = 2; - /** Position of Red base */ + /** + * Position of Red base + */ private static final Vector3i CENTER_RED_BASE_POSITION = new Vector3i(30, 10, 0); - /** Position of Black base */ + /** + * Position of Black base + */ private static final Vector3i CENTER_BLACK_BASE_POSITION = new Vector3i(-30, 10, 0); Region3i redBaseRegion = CreateBaseRegionFromVector(CENTER_RED_BASE_POSITION); @@ -55,7 +61,7 @@ public void process(GeneratingRegion region) { BaseFacet facet = new BaseFacet(region.getRegion(), border); for (Base base : fixedBases) { - facet.add(base); + facet.add(base); } region.setRegionFacet(BaseFacet.class, facet); } @@ -63,6 +69,7 @@ public void process(GeneratingRegion region) { private Region3i CreateBaseRegionFromVector(Vector3i centerBasePosition) { return Region3i.createFromMinMax(new Vector3i(centerBasePosition.x() - BASE_EXTENT, centerBasePosition.y(), centerBasePosition.z() - BASE_EXTENT), new Vector3i(centerBasePosition.x() + BASE_EXTENT, centerBasePosition.y(), centerBasePosition.z() + BASE_EXTENT)); } + private Region3i CreateFlagRegionFromVector(Vector3i centerBasePosition) { return Region3i.createFromMinMax(new Vector3i(centerBasePosition.x(), centerBasePosition.y() + 1, centerBasePosition.z()), new Vector3i(centerBasePosition.x(), centerBasePosition.y() + 1, centerBasePosition.z())); } diff --git a/src/main/java/org/terasology/las/dialog/action/SetTeamAction.java b/src/main/java/org/terasology/las/dialog/action/SetTeamAction.java index e396f073..e7e4b6fc 100644 --- a/src/main/java/org/terasology/las/dialog/action/SetTeamAction.java +++ b/src/main/java/org/terasology/las/dialog/action/SetTeamAction.java @@ -17,7 +17,6 @@ package org.terasology.las.dialog.action; import org.terasology.dialogs.action.PlayerAction; -import org.terasology.dialogs.components.DialogComponent; import org.terasology.entitySystem.entity.EntityRef; import org.terasology.ligthandshadow.componentsystem.components.LASTeam; import org.terasology.logic.characters.CharacterComponent; diff --git a/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java b/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java index e9ab7b12..80cfcb2c 100644 --- a/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java +++ b/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java @@ -16,16 +16,10 @@ package org.terasology.las.dialog.action; -import java.util.Map; - -import org.terasology.persistence.typeHandling.DeserializationContext; -import org.terasology.persistence.typeHandling.PersistedData; -import org.terasology.persistence.typeHandling.PersistedDataMap; -import org.terasology.persistence.typeHandling.RegisterTypeHandler; -import org.terasology.persistence.typeHandling.SerializationContext; -import org.terasology.persistence.typeHandling.SimpleTypeHandler; - import com.google.common.collect.ImmutableMap; +import org.terasology.persistence.typeHandling.*; + +import java.util.Map; @RegisterTypeHandler public class SetTeamActionTypeHandler extends SimpleTypeHandler { @@ -39,7 +33,7 @@ public PersistedData serialize(SetTeamAction action, SerializationContext contex Map data = ImmutableMap.of( "type", context.create(action.getClass().getSimpleName()), "team", context.create(action.getTeam()) - ); + ); return context.create(data); } diff --git a/src/main/java/org/terasology/las/platform/FloatingPlatformFacet.java b/src/main/java/org/terasology/las/platform/FloatingPlatformFacet.java index b93d88ea..13f34098 100644 --- a/src/main/java/org/terasology/las/platform/FloatingPlatformFacet.java +++ b/src/main/java/org/terasology/las/platform/FloatingPlatformFacet.java @@ -16,14 +16,14 @@ package org.terasology.las.platform; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; - import org.terasology.math.Region3i; import org.terasology.world.generation.Border3D; import org.terasology.world.generation.facets.base.BaseFacet2D; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; + /** * */ diff --git a/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java b/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java index 4996f042..8cc20c62 100644 --- a/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java +++ b/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java @@ -16,18 +16,14 @@ package org.terasology.las.platform; -import java.util.Collection; -import java.util.Collections; - import org.terasology.entitySystem.Component; import org.terasology.math.geom.Rect2i; -import org.terasology.world.generation.Border3D; -import org.terasology.world.generation.ConfigurableFacetProvider; -import org.terasology.world.generation.FacetProviderPlugin; -import org.terasology.world.generation.GeneratingRegion; -import org.terasology.world.generation.Produces; +import org.terasology.world.generation.*; import org.terasology.world.generator.plugin.RegisterPlugin; +import java.util.Collection; +import java.util.Collections; + /** * Provides {@link FloatingPlatformFacet} instances. */ diff --git a/src/main/java/org/terasology/las/platform/GuidanceNpcProvider.java b/src/main/java/org/terasology/las/platform/GuidanceNpcProvider.java index 94ad6b03..8f3e016f 100644 --- a/src/main/java/org/terasology/las/platform/GuidanceNpcProvider.java +++ b/src/main/java/org/terasology/las/platform/GuidanceNpcProvider.java @@ -16,12 +16,12 @@ package org.terasology.las.platform; -import org.terasology.utilities.Assets; import org.terasology.dialogs.components.DialogComponent; import org.terasology.entitySystem.entity.EntityStore; import org.terasology.entitySystem.prefab.Prefab; import org.terasology.logic.location.LocationComponent; import org.terasology.math.geom.Vector3f; +import org.terasology.utilities.Assets; import org.terasology.world.generation.EntityBuffer; import org.terasology.world.generation.EntityProviderPlugin; import org.terasology.world.generation.Region; diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/SpawnerComponent.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/SpawnerComponent.java index 31a3e9da..5986340e 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/components/SpawnerComponent.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/components/SpawnerComponent.java @@ -16,11 +16,10 @@ package org.terasology.ligthandshadow.componentsystem.components; import com.google.common.collect.Lists; - -import org.terasology.utilities.Assets; import org.terasology.entitySystem.Component; import org.terasology.entitySystem.entity.EntityRef; import org.terasology.entitySystem.prefab.Prefab; +import org.terasology.utilities.Assets; import java.util.List; import java.util.Optional; diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/EnemySystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/EnemySystem.java index cc9a32ee..f0621714 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/EnemySystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/EnemySystem.java @@ -28,8 +28,8 @@ import org.terasology.logic.characters.events.OnEnterBlockEvent; import org.terasology.logic.location.LocationComponent; import org.terasology.math.geom.Vector3f; -import org.terasology.registry.CoreRegistry; import org.terasology.minion.work.WorkTargetComponent; +import org.terasology.registry.CoreRegistry; import java.util.Map; import java.util.Set; diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java index f945a3e0..07ae47ac 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/LASSystem.java @@ -22,8 +22,6 @@ import org.terasology.entitySystem.systems.RegisterSystem; import org.terasology.logic.inventory.InventoryComponent; import org.terasology.logic.inventory.InventoryManager; -import org.terasology.logic.inventory.action.GiveItemAction; -import org.terasology.logic.inventory.action.RemoveItemAction; import org.terasology.logic.players.event.OnPlayerSpawnedEvent; import org.terasology.registry.In; import org.terasology.world.WorldProvider; @@ -44,7 +42,9 @@ public class LASSystem extends BaseComponentSystem { @In private BlockManager blockManager; - /** give player inventory items on game start */ + /** + * give player inventory items on game start + */ @ReceiveEvent public void onPlayerSpawn(OnPlayerSpawnedEvent event, EntityRef player, InventoryComponent inventory) { BlockItemFactory blockFactory = new BlockItemFactory(entityManager); diff --git a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java index 6329d4d5..467cf174 100644 --- a/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/componentsystem/controllers/TakeBlockOnActivationSystem.java @@ -36,7 +36,6 @@ import org.terasology.world.block.items.BlockItemFactory; - @RegisterSystem(RegisterMode.AUTHORITY) public class TakeBlockOnActivationSystem extends BaseComponentSystem { @In @@ -51,7 +50,6 @@ public class TakeBlockOnActivationSystem extends BaseComponentSystem { private EntityManager entityManager; - private static final Logger LOG = LoggerFactory.getLogger(TakeBlockOnActivationSystem.class); @ReceiveEvent(components = {TakeBlockOnActivateComponent.class, BlockComponent.class}) @@ -63,10 +61,10 @@ public void onActivate(ActivateEvent event, EntityRef entity) { LASTeam teamComponent = entity.getComponent(LASTeam.class); EntityRef flagTaker = event.getInstigator(); - if (teamComponent.team.equals("red")){ + if (teamComponent.team.equals("red")) { inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:redFlag"))); } - if (teamComponent.team.equals("black")){ + if (teamComponent.team.equals("black")) { inventoryManager.giveItem(flagTaker, EntityRef.NULL, blockFactory.newInstance(blockManager.getBlockFamily("LightAndShadowResources:blackFlag"))); } worldProvider.setBlock(blockComponent.getPosition(), blockManager.getBlock(BlockManager.AIR_ID)); diff --git a/src/main/java/org/terasology/ligthandshadow/logic/CardSystem.java b/src/main/java/org/terasology/ligthandshadow/logic/CardSystem.java index e782d188..96211249 100644 --- a/src/main/java/org/terasology/ligthandshadow/logic/CardSystem.java +++ b/src/main/java/org/terasology/ligthandshadow/logic/CardSystem.java @@ -18,9 +18,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.entitySystem.entity.EntityBuilder; -import org.terasology.utilities.Assets; import org.terasology.audio.AudioManager; +import org.terasology.entitySystem.entity.EntityBuilder; import org.terasology.entitySystem.entity.EntityManager; import org.terasology.entitySystem.entity.EntityRef; import org.terasology.entitySystem.event.ReceiveEvent; @@ -30,12 +29,13 @@ import org.terasology.logic.health.OnDamagedEvent; import org.terasology.logic.inventory.ItemComponent; import org.terasology.logic.location.LocationComponent; -import org.terasology.particles.components.ParticleEmitterComponent; import org.terasology.math.Region3i; import org.terasology.math.Side; -import org.terasology.math.geom.Vector3i; import org.terasology.math.geom.Vector3f; +import org.terasology.math.geom.Vector3i; +import org.terasology.particles.components.ParticleEmitterComponent; import org.terasology.registry.In; +import org.terasology.utilities.Assets; import org.terasology.world.BlockEntityRegistry; import org.terasology.world.WorldProvider; import org.terasology.world.block.Block; From c6a859a6eeff4ea886742ef52bb1426841df2644 Mon Sep 17 00:00:00 2001 From: Devi Acharya Date: Wed, 23 May 2018 13:30:37 -0500 Subject: [PATCH 15/15] Fixing import and checkstyle issues --- .../org/terasology/las/LaSWorldGenerator.java | 17 +++++++++++++---- .../org/terasology/las/bases/BaseProvider.java | 8 ++++++-- .../terasology/las/bases/BaseRasterizer.java | 2 +- .../dialog/action/SetTeamActionTypeHandler.java | 7 ++++++- .../las/platform/FloatingPlatformProvider.java | 6 +++++- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/terasology/las/LaSWorldGenerator.java b/src/main/java/org/terasology/las/LaSWorldGenerator.java index a5ab4823..fea51e18 100644 --- a/src/main/java/org/terasology/las/LaSWorldGenerator.java +++ b/src/main/java/org/terasology/las/LaSWorldGenerator.java @@ -16,7 +16,8 @@ package org.terasology.las; -import org.terasology.cities.*; +import org.terasology.cities.CityWorldGenerator; +import org.terasology.cities.BlockTheme; import org.terasology.cities.bldg.BuildingFacetProvider; import org.terasology.cities.blocked.BlockedAreaFacetProvider; import org.terasology.cities.deco.ColumnRasterizer; @@ -35,9 +36,18 @@ import org.terasology.cities.raster.standard.RectPartRasterizer; import org.terasology.cities.raster.standard.RoundPartRasterizer; import org.terasology.cities.raster.standard.StaircaseRasterizer; +import org.terasology.cities.SimpleBiomeProvider; +import org.terasology.cities.settlements.SettlementFacetProvider; +import org.terasology.cities.SettlementEntityProvider; +import org.terasology.cities.roof.RoofFacetProvider; +import org.terasology.cities.roof.ConicRoofRasterizer; +import org.terasology.cities.roof.DomeRoofRasterizer; +import org.terasology.cities.roof.FlatRoofRasterizer; +import org.terasology.cities.roof.SaddleRoofRasterizer; +import org.terasology.cities.roof.PentRoofRasterizer; +import org.terasology.cities.roof.HipRoofRasterizer; import org.terasology.cities.roads.RoadFacetProvider; import org.terasology.cities.roads.RoadRasterizer; -import org.terasology.cities.roof.*; import org.terasology.cities.settlements.SettlementFacetProvider; import org.terasology.cities.sites.SiteFacetProvider; import org.terasology.cities.surface.InfiniteSurfaceHeightFacetProvider; @@ -60,13 +70,12 @@ import org.terasology.registry.CoreRegistry; import org.terasology.registry.In; import org.terasology.world.block.BlockManager; +import org.terasology.cities.DefaultBlockType; import org.terasology.world.generation.World; import org.terasology.world.generation.WorldBuilder; import org.terasology.world.generator.RegisterWorldGenerator; import org.terasology.world.generator.plugin.WorldGeneratorPluginLibrary; -//import org.terasology.core.world.generator.facetProviders.EnsureSpawnableChunkZeroProvider; - @RegisterWorldGenerator(id = "las", displayName = "Light & Shadow World") public class LaSWorldGenerator extends CityWorldGenerator { diff --git a/src/main/java/org/terasology/las/bases/BaseProvider.java b/src/main/java/org/terasology/las/bases/BaseProvider.java index b1565592..4acfc073 100644 --- a/src/main/java/org/terasology/las/bases/BaseProvider.java +++ b/src/main/java/org/terasology/las/bases/BaseProvider.java @@ -18,9 +18,13 @@ import com.google.common.collect.ImmutableSet; import org.terasology.math.Region3i; import org.terasology.math.geom.Vector3i; -import org.terasology.world.generation.*; import org.terasology.world.generation.facets.SurfaceHeightFacet; - +import org.terasology.world.generation.Produces; +import org.terasology.world.generation.Requires; +import org.terasology.world.generation.Facet; +import org.terasology.world.generation.GeneratingRegion; +import org.terasology.world.generation.Border3D; +import org.terasology.world.generation.FacetProvider; import java.util.Collection; @Produces(BaseFacet.class) diff --git a/src/main/java/org/terasology/las/bases/BaseRasterizer.java b/src/main/java/org/terasology/las/bases/BaseRasterizer.java index f94ed51f..3fc3473d 100644 --- a/src/main/java/org/terasology/las/bases/BaseRasterizer.java +++ b/src/main/java/org/terasology/las/bases/BaseRasterizer.java @@ -61,4 +61,4 @@ public void generateChunk(CoreChunk chunk, Region chunkRegion) { } } } -} \ No newline at end of file +} diff --git a/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java b/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java index 80cfcb2c..74712f8b 100644 --- a/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java +++ b/src/main/java/org/terasology/las/dialog/action/SetTeamActionTypeHandler.java @@ -17,7 +17,12 @@ package org.terasology.las.dialog.action; import com.google.common.collect.ImmutableMap; -import org.terasology.persistence.typeHandling.*; +import org.terasology.persistence.typeHandling.DeserializationContext; +import org.terasology.persistence.typeHandling.PersistedData; +import org.terasology.persistence.typeHandling.PersistedDataMap; +import org.terasology.persistence.typeHandling.RegisterTypeHandler; +import org.terasology.persistence.typeHandling.SerializationContext; +import org.terasology.persistence.typeHandling.SimpleTypeHandler; import java.util.Map; diff --git a/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java b/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java index 8cc20c62..a48dad9e 100644 --- a/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java +++ b/src/main/java/org/terasology/las/platform/FloatingPlatformProvider.java @@ -18,7 +18,11 @@ import org.terasology.entitySystem.Component; import org.terasology.math.geom.Rect2i; -import org.terasology.world.generation.*; +import org.terasology.world.generation.Border3D; +import org.terasology.world.generation.ConfigurableFacetProvider; +import org.terasology.world.generation.FacetProviderPlugin; +import org.terasology.world.generation.GeneratingRegion; +import org.terasology.world.generation.Produces; import org.terasology.world.generator.plugin.RegisterPlugin; import java.util.Collection;