Search in sources :

Example 1 with StandardRetryingRequestResolver

use of com.minecolonies.coremod.colony.requestsystem.resolvers.StandardRetryingRequestResolver in project minecolonies by Minecolonies.

the class StandardRetryingRequestResolverFactory method deserialize.

@NotNull
@Override
public StandardRetryingRequestResolver deserialize(@NotNull final IFactoryController controller, @NotNull final NBTTagCompound nbt) {
    final Map<IToken<?>, Integer> assignments = NBTUtils.streamCompound(nbt.getTagList(NBT_TRIES, Constants.NBT.TAG_COMPOUND)).map(assignmentCompound -> {
        IToken token = controller.deserialize(assignmentCompound.getCompoundTag(NBT_TOKEN));
        Integer tries = assignmentCompound.getInteger(NBT_VALUE);
        return new HashMap.SimpleEntry<>(token, tries);
    }).collect(Collectors.toMap(HashMap.SimpleEntry::getKey, HashMap.SimpleEntry::getValue));
    final Map<IToken<?>, Integer> delays = NBTUtils.streamCompound(nbt.getTagList(NBT_DELAYS, Constants.NBT.TAG_COMPOUND)).map(assignmentCompound -> {
        IToken token = controller.deserialize(assignmentCompound.getCompoundTag(NBT_TOKEN));
        Integer tries = assignmentCompound.getInteger(NBT_VALUE);
        return new HashMap.SimpleEntry<>(token, tries);
    }).collect(Collectors.toMap(HashMap.SimpleEntry::getKey, HashMap.SimpleEntry::getValue));
    final IToken<?> token = controller.deserialize(nbt.getCompoundTag(NBT_TOKEN));
    final ILocation location = controller.deserialize(nbt.getCompoundTag(NBT_LOCATION));
    final StandardRetryingRequestResolver retryingRequestResolver = new StandardRetryingRequestResolver(token, location);
    retryingRequestResolver.updateData(assignments, delays);
    return retryingRequestResolver;
}
Also used : NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) Constants(net.minecraftforge.common.util.Constants) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) HashMap(java.util.HashMap) 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) Map(java.util.Map) NBTUtils(com.minecolonies.api.util.NBTUtils) StandardRetryingRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.StandardRetryingRequestResolver) NotNull(org.jetbrains.annotations.NotNull) StandardRetryingRequestResolver(com.minecolonies.coremod.colony.requestsystem.resolvers.StandardRetryingRequestResolver) ILocation(com.minecolonies.api.colony.requestsystem.location.ILocation) IToken(com.minecolonies.api.colony.requestsystem.token.IToken) HashMap(java.util.HashMap) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

TypeToken (com.google.common.reflect.TypeToken)1 IFactory (com.minecolonies.api.colony.requestsystem.factory.IFactory)1 IFactoryController (com.minecolonies.api.colony.requestsystem.factory.IFactoryController)1 ILocation (com.minecolonies.api.colony.requestsystem.location.ILocation)1 IRequestManager (com.minecolonies.api.colony.requestsystem.manager.IRequestManager)1 IToken (com.minecolonies.api.colony.requestsystem.token.IToken)1 NBTUtils (com.minecolonies.api.util.NBTUtils)1 StandardRetryingRequestResolver (com.minecolonies.coremod.colony.requestsystem.resolvers.StandardRetryingRequestResolver)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)1 Constants (net.minecraftforge.common.util.Constants)1 NotNull (org.jetbrains.annotations.NotNull)1