public static ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> loadTransformFromJsonBackup(ResourceLocation location) throws IOException { Reader reader = getReaderForResource(location); try { // we abuse ModelBlock because all the deserializers are not accessible.. ModelBlock modelBlock = ModelBlock.deserialize(reader); ItemCameraTransforms itemCameraTransforms = modelBlock.getAllTransforms(); ImmutableMap.Builder<ItemCameraTransforms.TransformType, TRSRTransformation> builder = ImmutableMap.builder(); for(ItemCameraTransforms.TransformType type : ItemCameraTransforms.TransformType.values()) { if(itemCameraTransforms.getTransform(type) != ItemTransformVec3f.DEFAULT) { builder.put(type, new TRSRTransformation(itemCameraTransforms.getTransform(type))); } } return builder.build(); } finally { IOUtils.closeQuietly(reader); } }
/** * Builds a new copy of the transformations for a baked model. * * @param model The model to pull the transformation data from. * @return An immutable map which maps transformation types to their transformation data in * the base model. */ public static ImmutableMap<TransformType, TRSRTransformation> copyTransforms (IBakedModel model) { final ImmutableMap.Builder<TransformType, TRSRTransformation> copiedTransforms = ImmutableMap.builder(); // Iterate through all the item transform types for (final TransformType type : TransformType.values()) { // Copies transformation for the transform type. final TRSRTransformation transformation = new TRSRTransformation(model.handlePerspective(type).getRight()); // Filters out the base transformation. if (!transformation.equals(TRSRTransformation.identity())) { copiedTransforms.put(type, TRSRTransformation.blockCenterToCorner(transformation)); } } return copiedTransforms.build(); }
/** * Creates the basic TRSRTransformations for a perspective aware model. * * @param model The model to get the transforms for. * @return An immutable map of all the transforms. */ public static ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> getBasicTransforms (IBakedModel model) { final ImmutableMap.Builder<ItemCameraTransforms.TransformType, TRSRTransformation> builder = ImmutableMap.builder(); for (final ItemCameraTransforms.TransformType type : ItemCameraTransforms.TransformType.values()) { final TRSRTransformation transformation = new TRSRTransformation(model.handlePerspective(type).getRight()); if (!transformation.equals(TRSRTransformation.identity())) { builder.put(type, TRSRTransformation.blockCenterToCorner(transformation)); } } return builder.build(); }
@SuppressWarnings("deprecation") public static void postInit() { try { try(IResource resource = Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("models/block/block.json"))) { InputStreamReader reader = new InputStreamReader(resource.getInputStream()); ModelBlock modelBlock = ModelBlock.deserialize(reader); for(TransformType transformType : TransformType.values()) { ItemTransformVec3f vec3f = modelBlock.getAllTransforms().getTransform(transformType); BLOCK_TRANSFORMS.put(transformType, new TRSRTransformation(vec3f)); } } } catch (IOException exception) { GTLog.logger.error("Failed to load default block transforms", exception); } }
@Override public PerspectiveAwareModel process(ImmutableMap<String, String> customData) { final ModelUpdater updater = new ModelUpdater(customData); final Optional<ResourceLocation> base = updater.get("base", ModelUpdater.MODEL_LOCATION, this.base); final Map<TransformType, ResourceLocation> models = Maps.newHashMap(); for (TransformType layer : TransformType.values()) { final ResourceLocation result = updater.get(layer.toString(), ModelUpdater.MODEL_LOCATION, this.models.get(layer)); if (result != null) models.put(layer, result); } return updater.hasChanged()? new PerspectiveAwareModel(base, models) : this; }
public static ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> getTransforms(IBakedModel model) { ImmutableMap.Builder<ItemCameraTransforms.TransformType, TRSRTransformation> builder = ImmutableMap.builder(); for(ItemCameraTransforms.TransformType type : ItemCameraTransforms.TransformType.values()) { TRSRTransformation transformation = new TRSRTransformation(model.handlePerspective(type).getRight()); if(!transformation.equals(TRSRTransformation.identity())) { builder.put(type, TRSRTransformation.blockCenterToCorner(transformation)); } } return builder.build(); }