Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deco block #3514

Merged
merged 23 commits into from
Mar 27, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -506,9 +506,9 @@ public void deconstruct()
*
* @param newLevel The new level.
*/
@SuppressWarnings("squid:S1172")
public void onUpgradeComplete(final int newLevel)
{
ConstructionTapeHelper.removeConstructionTape(getCorners(), colony.getWorld());
colony.getProgressManager().progressBuildBuilding(this,
colony.getBuildingManager().getBuildings().values().stream()
.filter(building -> building instanceof AbstractBuildingWorker).mapToInt(AbstractSchematicProvider::getBuildingLevel).sum(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.ldtteam.structures.helpers.Structure;
import com.ldtteam.structurize.util.PlacementSettings;
import com.minecolonies.api.util.BlockPosUtil;
import com.minecolonies.api.util.BlockUtils;
import com.minecolonies.api.util.Log;
Expand All @@ -15,13 +13,9 @@
import com.minecolonies.coremod.colony.buildings.AbstractBuilding;
import com.minecolonies.coremod.colony.buildings.views.AbstractBuildingView;
import com.minecolonies.coremod.colony.buildings.workerbuildings.*;
import com.minecolonies.coremod.colony.workorders.WorkOrderBuildBuilding;
import com.minecolonies.coremod.entity.ai.citizen.builder.ConstructionTapeHelper;
import com.minecolonies.coremod.tileentities.TileEntityColonyBuilding;
import com.minecolonies.coremod.util.ColonyUtils;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Tuple;
import net.minecraft.util.math.BlockPos;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -237,24 +231,6 @@ public static AbstractBuilding create(final Colony colony, @NotNull final TileEn
{
Log.getLogger().error(String.format("Unknown Building type '%s' or missing constructor of proper format.", parent.getClass().getName()), exception);
}

if (building != null && parent.getWorld() != null && !(building instanceof PostBox))
{
building.setRotation(BlockUtils.getRotationFromFacing(parent.getWorld().getBlockState(parent.getPosition()).getValue(AbstractBlockHut.FACING)));
final WorkOrderBuildBuilding workOrder = new WorkOrderBuildBuilding(building, 1);
final Structure wrapper = new Structure(parent.getWorld(), workOrder.getStructureName(), new PlacementSettings());
final Tuple<Tuple<Integer, Integer>, Tuple<Integer, Integer>> corners
= ColonyUtils.calculateCorners(building.getLocation(),
parent.getWorld(),
wrapper,
workOrder.getRotation(parent.getWorld()),
workOrder.isMirrored());

building.setCorners(corners.getFirst().getFirst(), corners.getFirst().getSecond(), corners.getSecond().getFirst(), corners.getSecond().getSecond());
building.setHeight(wrapper.getHeight());

ConstructionTapeHelper.placeConstructionTape(building.getLocation(), corners, parent.getWorld());
}
return building;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
package com.minecolonies.coremod.colony.managers;

import com.ldtteam.structures.helpers.Structure;
import com.ldtteam.structurize.util.PlacementSettings;
import com.minecolonies.api.util.BlockPosUtil;
import com.minecolonies.api.util.BlockUtils;
import com.minecolonies.api.util.Log;
import com.minecolonies.coremod.MineColonies;
import com.minecolonies.coremod.blocks.AbstractBlockHut;
import com.minecolonies.coremod.colony.CitizenData;
import com.minecolonies.coremod.colony.Colony;
import com.minecolonies.coremod.colony.buildings.AbstractBuilding;
import com.minecolonies.coremod.colony.buildings.registry.BuildingRegistry;
import com.minecolonies.coremod.colony.buildings.workerbuildings.BuildingCook;
import com.minecolonies.coremod.colony.buildings.workerbuildings.BuildingFarmer;
import com.minecolonies.coremod.colony.buildings.workerbuildings.BuildingTownHall;
import com.minecolonies.coremod.colony.buildings.workerbuildings.BuildingWareHouse;
import com.minecolonies.coremod.colony.buildings.workerbuildings.*;
import com.minecolonies.coremod.colony.managers.interfaces.IBuildingManager;
import com.minecolonies.coremod.colony.workorders.WorkOrderBuildBuilding;
import com.minecolonies.coremod.entity.EntityCitizen;
import com.minecolonies.coremod.entity.ai.citizen.builder.ConstructionTapeHelper;
import com.minecolonies.coremod.network.messages.ColonyViewBuildingViewMessage;
import com.minecolonies.coremod.network.messages.ColonyViewRemoveBuildingMessage;
import com.minecolonies.coremod.tileentities.ScarecrowTileEntity;
import com.minecolonies.coremod.tileentities.TileEntityColonyBuilding;
import com.minecolonies.coremod.util.ColonyUtils;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Tuple;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants;
Expand Down Expand Up @@ -336,6 +340,25 @@ public AbstractBuilding addNewBuilding(@NotNull final TileEntityColonyBuilding t
{
building.setStyle(colony.getStyle());
}

if (world != null && !(building instanceof PostBox))
{
building.setRotation(BlockUtils.getRotationFromFacing(world.getBlockState(building.getLocation()).getValue(AbstractBlockHut.FACING)));
final WorkOrderBuildBuilding workOrder = new WorkOrderBuildBuilding(building, 1);
final Structure wrapper = new Structure(world, workOrder.getStructureName(), new PlacementSettings());
final Tuple<Tuple<Integer, Integer>, Tuple<Integer, Integer>> corners
= ColonyUtils.calculateCorners(building.getLocation(),
world,
wrapper,
workOrder.getRotation(world),
workOrder.isMirrored());

building.setCorners(corners.getFirst().getFirst(), corners.getFirst().getSecond(), corners.getSecond().getFirst(), corners.getSecond().getSecond());
building.setHeight(wrapper.getHeight());

ConstructionTapeHelper.placeConstructionTape(building.getLocation(), corners, world);
}

ConstructionTapeHelper.placeConstructionTape(building.getLocation(), building.getCorners(), world);
colony.getRequestManager().onProviderAddedToColony(building);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public final class PirateEventUtils
/**
* Folder name for the pirate ship schematics
*/
public static final String PIRATESHIP_FOLDER = "/Decorations/Ships/";
public static final String PIRATESHIP_FOLDER = "/Ships/";

/**
* Colony range divider in which distance to load the pirate spawners.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.minecolonies.coremod.network.messages;

import com.ldtteam.structures.helpers.Structure;
import com.ldtteam.structurize.util.PlacementSettings;
import com.minecolonies.api.colony.permissions.Action;
import com.minecolonies.api.configuration.Configurations;
import com.minecolonies.api.util.*;
Expand All @@ -8,10 +10,12 @@
import com.minecolonies.coremod.colony.Colony;
import com.minecolonies.coremod.colony.ColonyManager;
import com.minecolonies.coremod.colony.buildings.AbstractBuilding;
import com.minecolonies.coremod.colony.buildings.workerbuildings.PostBox;
import com.minecolonies.coremod.colony.workorders.WorkOrderBuildBuilding;
import com.minecolonies.coremod.entity.ai.citizen.builder.ConstructionTapeHelper;
import com.minecolonies.coremod.event.EventHandler;
import com.minecolonies.coremod.items.ModItems;
import com.minecolonies.coremod.util.ColonyUtils;
import com.minecolonies.coremod.util.InstantStructurePlacer;
import com.ldtteam.structurize.client.gui.WindowBuildTool;
import com.ldtteam.structurize.management.StructureName;
Expand All @@ -28,6 +32,7 @@
import net.minecraft.nbt.NBTUtil;
import net.minecraft.stats.StatList;
import net.minecraft.util.Mirror;
import net.minecraft.util.Tuple;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;
Expand Down Expand Up @@ -330,6 +335,23 @@ private static void setupBuilding(

building.setStyle(sn.getStyle());
building.setRotation(rotation);

if (!(building instanceof PostBox))
{
ConstructionTapeHelper.removeConstructionTape(building.getCorners(), world);
final WorkOrderBuildBuilding workOrder = new WorkOrderBuildBuilding(building, 1);
final Structure wrapper = new Structure(world, workOrder.getStructureName(), new PlacementSettings());
final Tuple<Tuple<Integer, Integer>, Tuple<Integer, Integer>> corners
= ColonyUtils.calculateCorners(building.getLocation(),
world,
wrapper,
workOrder.getRotation(world),
workOrder.isMirrored());

building.setCorners(corners.getFirst().getFirst(), corners.getFirst().getSecond(), corners.getSecond().getFirst(), corners.getSecond().getSecond());
building.setHeight(wrapper.getHeight());
}

if (mirror)
{
building.invertMirror();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.minecolonies.coremod.network.messages;

import com.ldtteam.structures.helpers.Structure;
import com.ldtteam.structurize.util.PlacementSettings;
import com.minecolonies.api.colony.permissions.Action;
import com.minecolonies.api.util.*;
import com.minecolonies.api.util.constant.Constants;
Expand All @@ -8,8 +10,12 @@
import com.minecolonies.coremod.colony.Colony;
import com.minecolonies.coremod.colony.ColonyManager;
import com.minecolonies.coremod.colony.buildings.AbstractBuilding;
import com.minecolonies.coremod.colony.buildings.workerbuildings.PostBox;
import com.minecolonies.coremod.colony.workorders.WorkOrderBuildBuilding;
import com.minecolonies.coremod.colony.workorders.WorkOrderBuildDecoration;
import com.minecolonies.coremod.entity.ai.citizen.builder.ConstructionTapeHelper;
import com.minecolonies.coremod.event.EventHandler;
import com.minecolonies.coremod.util.ColonyUtils;
import com.minecolonies.coremod.util.InstantStructurePlacer;
import com.ldtteam.structurize.management.StructureName;
import com.ldtteam.structurize.management.Structures;
Expand All @@ -23,6 +29,7 @@
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTUtil;
import net.minecraft.util.Mirror;
import net.minecraft.util.Tuple;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;
Expand Down Expand Up @@ -314,9 +321,30 @@ private static void setupBuilding(
building.getTileEntity().setColony(colony);
}
}


building.setStyle(sn.getStyle());
building.setRotation(rotation);
building.setBuildingLevel(level);

if (!(building instanceof PostBox))
{
ConstructionTapeHelper.removeConstructionTape(building.getCorners(), world);
final WorkOrderBuildBuilding workOrder = new WorkOrderBuildBuilding(building, 1);
final Structure wrapper = new Structure(world, workOrder.getStructureName(), new PlacementSettings());
final Tuple<Tuple<Integer, Integer>, Tuple<Integer, Integer>> corners
= ColonyUtils.calculateCorners(building.getLocation(),
world,
wrapper,
workOrder.getRotation(world),
workOrder.isMirrored());

building.setCorners(corners.getFirst().getFirst(), corners.getFirst().getSecond(), corners.getSecond().getFirst(), corners.getSecond().getSecond());
building.setHeight(wrapper.getHeight());

ConstructionTapeHelper.placeConstructionTape(building.getLocation(), corners, world);
}

if (mirror)
{
building.invertMirror();
Expand Down