Search in sources :

Example 16 with IToken

use of com.minecolonies.api.colony.requestsystem.token.IToken in project minecolonies by Minecolonies.

the class AbstractBuildingWorker method serializeToView.

@Override
public void serializeToView(@NotNull final ByteBuf buf) {
    super.serializeToView(buf);
    buf.writeInt(workers.size());
    for (final CitizenData data : workers) {
        buf.writeInt(data == null ? 0 : data.getId());
    }
    final List<IRecipeStorage> storages = new ArrayList<>();
    for (final IToken token : new ArrayList<>(recipes)) {
        final IRecipeStorage storage = ColonyManager.getRecipeManager().getRecipes().get(token);
        if (storage == null) {
            removeRecipe(token);
        } else {
            storages.add(storage);
        }
    }
    buf.writeInt(storages.size());
    for (final IRecipeStorage storage : storages) {
        ByteBufUtils.writeTag(buf, StandardFactoryController.getInstance().serialize(storage));
    }
}
Also used : IToken(com.minecolonies.api.colony.requestsystem.token.IToken) IRecipeStorage(com.minecolonies.api.crafting.IRecipeStorage) CitizenData(com.minecolonies.coremod.colony.CitizenData)

Example 17 with IToken

use of com.minecolonies.api.colony.requestsystem.token.IToken in project minecolonies by Minecolonies.

the class AddRemoveRecipeMessage method messageOnServerThread.

/**
 * Executes the message on the server thread.
 * Only if the player has the permission, toggle message.
 *
 * @param message the original message.
 * @param player  the player associated.
 */
@Override
public void messageOnServerThread(final AddRemoveRecipeMessage message, final EntityPlayerMP player) {
    final Colony colony = ColonyManager.getColony(message.colonyId);
    if (colony == null || !colony.getPermissions().hasPermission(player, Action.MANAGE_HUTS)) {
        return;
    }
    final AbstractBuilding buildingWorker = colony.getBuildingManager().getBuilding(message.building);
    if (buildingWorker instanceof AbstractBuildingWorker) {
        final IToken token = ColonyManager.getRecipeManager().checkOrAddRecipe(message.storage);
        if (message.remove) {
            ((AbstractBuildingWorker) buildingWorker).removeRecipe(token);
        } else {
            ((AbstractBuildingWorker) buildingWorker).addRecipe(token);
        }
        buildingWorker.markDirty();
    }
}
Also used : AbstractBuildingWorker(com.minecolonies.coremod.colony.buildings.AbstractBuildingWorker) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) Colony(com.minecolonies.coremod.colony.Colony) AbstractBuilding(com.minecolonies.coremod.colony.buildings.AbstractBuilding)

Example 18 with IToken

use of com.minecolonies.api.colony.requestsystem.token.IToken in project minecolonies by Minecolonies.

the class BuildingRequestResolverFactory method deserialize.

@NotNull
@Override
public BuildingRequestResolver deserialize(@NotNull final IFactoryController controller, @NotNull final NBTTagCompound nbt) {
    final IToken token = controller.deserialize(nbt.getCompoundTag(NBT_TOKEN));
    final ILocation location = controller.deserialize(nbt.getCompoundTag(NBT_LOCATION));
    return new BuildingRequestResolver(location, token);
}
Also used : ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) BuildingRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.BuildingRequestResolver) NotNull(org.jetbrains.annotations.NotNull)

Example 19 with IToken

use of com.minecolonies.api.colony.requestsystem.token.IToken in project minecolonies by Minecolonies.

the class StandardPlayerRequestResolverFactory method deserialize.

@NotNull
@Override
public StandardPlayerRequestResolver deserialize(@NotNull final IFactoryController controller, @NotNull final NBTTagCompound nbt) {
    final IToken token = controller.deserialize(nbt.getCompoundTag(NBT_TOKEN));
    final ILocation location = controller.deserialize(nbt.getCompoundTag(NBT_LOCATION));
    final Set<IToken<?>> assignedRequests = NBTUtils.streamCompound(nbt.getTagList(NBT_ASSIGNED_REQUESTS, Constants.NBT.TAG_COMPOUND)).map(c -> (IToken<?>) controller.deserialize(c)).collect(Collectors.toSet());
    final StandardPlayerRequestResolver resolver = new StandardPlayerRequestResolver(location, token);
    resolver.setAllAssignedRequests(assignedRequests);
    return resolver;
}
Also used : NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) StandardPlayerRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.StandardPlayerRequestResolver) Constants(net.minecraftforge.common.util.Constants) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) Set(java.util.Set) TypeToken(com.google.common.reflect.TypeToken) IFactoryController(com.minecolonies.api.colony.requestsystem.factory.IFactoryController) Collectors(java.util.stream.Collectors) IRequestManager(com.minecolonies.api.colony.requestsystem.manager.IRequestManager) IFactory(com.minecolonies.api.colony.requestsystem.factory.IFactory) TypeConstants(com.minecolonies.api.util.constant.TypeConstants) NBTUtils(com.minecolonies.api.util.NBTUtils) NotNull(org.jetbrains.annotations.NotNull) ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) StandardPlayerRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.StandardPlayerRequestResolver) NotNull(org.jetbrains.annotations.NotNull)

Example 20 with IToken

use of com.minecolonies.api.colony.requestsystem.token.IToken in project minecolonies by Minecolonies.

the class WarehouseRequestResolverFactory method deserialize.

@NotNull
@Override
public WarehouseRequestResolver deserialize(@NotNull final IFactoryController controller, @NotNull final NBTTagCompound nbt) {
    final IToken token = controller.deserialize(nbt.getCompoundTag(NBT_TOKEN));
    final ILocation location = controller.deserialize(nbt.getCompoundTag(NBT_LOCATION));
    return new WarehouseRequestResolver(location, token);
}
Also used : ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) WarehouseRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.WarehouseRequestResolver) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

IToken (com.minecolonies.api.colony.requestsystem.token.IToken)25 NotNull (org.jetbrains.annotations.NotNull)12 ILocation (com.minecolonies.api.colony.requestsystem.location.ILocation)7 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)7 IRequest (com.minecolonies.api.colony.requestsystem.request.IRequest)6 TypeToken (com.google.common.reflect.TypeToken)5 Collectors (java.util.stream.Collectors)5 MineColonies (com.minecolonies.coremod.MineColonies)4 NBTTagList (net.minecraft.nbt.NBTTagList)4 ImmutableList (com.google.common.collect.ImmutableList)3 IRequestManager (com.minecolonies.api.colony.requestsystem.manager.IRequestManager)3 RequestState (com.minecolonies.api.colony.requestsystem.request.RequestState)3 IRequester (com.minecolonies.api.colony.requestsystem.requester.IRequester)3 StandardToken (com.minecolonies.api.colony.requestsystem.token.StandardToken)3 NBTUtils (com.minecolonies.api.util.NBTUtils)3 TypeConstants (com.minecolonies.api.util.constant.TypeConstants)3 CitizenData (com.minecolonies.coremod.colony.CitizenData)3 Colony (com.minecolonies.coremod.colony.Colony)3 java.util (java.util)3 Nullable (org.jetbrains.annotations.Nullable)3