package com.amadornes.framez.part; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import net.minecraft.block.Block; import net.minecraft.world.World; import codechicken.lib.vec.BlockCoord; import codechicken.multipart.MultiPartRegistry; import codechicken.multipart.MultiPartRegistry.IPartConverter; import codechicken.multipart.MultiPartRegistry.IPartFactory; import codechicken.multipart.TMultiPart; import com.amadornes.framez.api.modifier.IFrameModifier; import com.amadornes.framez.modifier.FrameFactory; import com.amadornes.framez.modifier.FrameModifierRegistry; import com.amadornes.framez.ref.References; public class PartFactory implements IPartFactory, IPartConverter { public static void init() { PartFactory factory = new PartFactory(); List<String> ids = new ArrayList<String>(); for (List<IFrameModifier> mods : FrameModifierRegistry.instance().getAllCombinations(PartFrame.class)) ids.add(FrameFactory.createFrame(PartFrame.class, mods).getType()); MultiPartRegistry.registerParts(factory, ids.toArray(new String[ids.size()])); MultiPartRegistry.registerConverter(factory); } @Override public TMultiPart createPart(String type, boolean client) { if (type.equals(References.FRAME_PART_ID)) type = References.FRAME_PART_ID + "_" + References.Modifier.MATERIAL_WOOD; if (type.startsWith(References.FRAME_PART_ID)) return FrameFactory.createFrame(PartFrame.class, type); return null; } @Override public Iterable<Block> blockTypes() { return Arrays.asList(); } @Override public TMultiPart convert(World world, BlockCoord location) { return null; } }