Search in sources :

Example 1 with TileEntityBlockScript

use of ivorius.reccomplex.block.TileEntityBlockScript in project RecurrentComplex by Ivorforce.

the class PacketWorldDataHandler method processServer.

@Override
public void processServer(PacketWorldData message, MessageContext ctx, WorldServer world) {
    BlockPos origin = message.source;
    BlockArea area = new BlockArea(message.capturePoint1.add(origin), message.capturePoint2.add(origin));
    // Send captured back
    IvWorldData worldData = IvWorldData.capture(world, area, true);
    // Unsupported because of recursion and TE scripts not working anyway
    worldData.tileEntities.removeIf(te -> TileEntity.create(world, te) instanceof TileEntityBlockScript);
    PacketWorldData packet = new PacketWorldData(worldData.createTagCompound(), origin, message.capturePoint1, message.capturePoint2);
    RecurrentComplex.network.sendTo(packet, ctx.getServerHandler().player);
    if (message.worldData != null) {
        GenericStructure structure = new GenericStructure();
        structure.worldDataCompound = message.worldData;
        new StructureGenerator<>(structure).world(world).lowerCoord(message.capturePoint1.add(origin)).generationPredicate(p -> !p.equals(origin)).generate();
    }
}
Also used : BlockArea(ivorius.ivtoolkit.blocks.BlockArea) IvWorldData(ivorius.ivtoolkit.tools.IvWorldData) WorldScriptHolder(ivorius.reccomplex.world.gen.script.WorldScriptHolder) GenericStructure(ivorius.reccomplex.world.gen.feature.structure.generic.GenericStructure) Structures(ivorius.reccomplex.world.gen.feature.structure.Structures) IMessage(net.minecraftforge.fml.common.network.simpleimpl.IMessage) SchedulingMessageHandler(ivorius.ivtoolkit.network.SchedulingMessageHandler) BlockPositions(ivorius.ivtoolkit.blocks.BlockPositions) TileEntityBlockScript(ivorius.reccomplex.block.TileEntityBlockScript) TableDataSource(ivorius.reccomplex.gui.table.datasource.TableDataSource) TableDataSourceWorldScriptHolder(ivorius.reccomplex.gui.worldscripts.TableDataSourceWorldScriptHolder) StructureGenerator(ivorius.reccomplex.world.gen.feature.StructureGenerator) BlockPos(net.minecraft.util.math.BlockPos) TableNavigator(ivorius.reccomplex.gui.table.TableNavigator) BlockArea(ivorius.ivtoolkit.blocks.BlockArea) GuiScreen(net.minecraft.client.gui.GuiScreen) MessageContext(net.minecraftforge.fml.common.network.simpleimpl.MessageContext) Minecraft(net.minecraft.client.Minecraft) Side(net.minecraftforge.fml.relauncher.Side) TileEntity(net.minecraft.tileentity.TileEntity) RecurrentComplex(ivorius.reccomplex.RecurrentComplex) TableDelegate(ivorius.reccomplex.gui.table.TableDelegate) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) WorldServer(net.minecraft.world.WorldServer) StructureGenerator(ivorius.reccomplex.world.gen.feature.StructureGenerator) IvWorldData(ivorius.ivtoolkit.tools.IvWorldData) BlockPos(net.minecraft.util.math.BlockPos) GenericStructure(ivorius.reccomplex.world.gen.feature.structure.generic.GenericStructure) TileEntityBlockScript(ivorius.reccomplex.block.TileEntityBlockScript)

Aggregations

BlockArea (ivorius.ivtoolkit.blocks.BlockArea)1 BlockPositions (ivorius.ivtoolkit.blocks.BlockPositions)1 SchedulingMessageHandler (ivorius.ivtoolkit.network.SchedulingMessageHandler)1 IvWorldData (ivorius.ivtoolkit.tools.IvWorldData)1 RecurrentComplex (ivorius.reccomplex.RecurrentComplex)1 TileEntityBlockScript (ivorius.reccomplex.block.TileEntityBlockScript)1 TableDelegate (ivorius.reccomplex.gui.table.TableDelegate)1 TableNavigator (ivorius.reccomplex.gui.table.TableNavigator)1 TableDataSource (ivorius.reccomplex.gui.table.datasource.TableDataSource)1 TableDataSourceWorldScriptHolder (ivorius.reccomplex.gui.worldscripts.TableDataSourceWorldScriptHolder)1 StructureGenerator (ivorius.reccomplex.world.gen.feature.StructureGenerator)1 Structures (ivorius.reccomplex.world.gen.feature.structure.Structures)1 GenericStructure (ivorius.reccomplex.world.gen.feature.structure.generic.GenericStructure)1 WorldScriptHolder (ivorius.reccomplex.world.gen.script.WorldScriptHolder)1 Minecraft (net.minecraft.client.Minecraft)1 GuiScreen (net.minecraft.client.gui.GuiScreen)1 TileEntity (net.minecraft.tileentity.TileEntity)1 BlockPos (net.minecraft.util.math.BlockPos)1 WorldServer (net.minecraft.world.WorldServer)1 IMessage (net.minecraftforge.fml.common.network.simpleimpl.IMessage)1