package com.jaquadro.minecraft.gardenapi.internal.registry; import com.jaquadro.minecraft.gardenapi.api.connect.IAttachable; import com.jaquadro.minecraft.gardenapi.api.connect.IAttachableRegistry; import com.jaquadro.minecraft.gardenapi.api.connect.StandardAttachable; import com.jaquadro.minecraft.gardencore.util.UniqueMetaIdentifier; import com.jaquadro.minecraft.gardencore.util.UniqueMetaRegistry; import com.jaquadro.minecraft.gardenstuff.core.ModBlocks; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; public class AttachableRegistry implements IAttachableRegistry { private UniqueMetaRegistry<IAttachable> registry; public AttachableRegistry () { registry = new UniqueMetaRegistry<IAttachable>(); init(); } private void init () { for (int i = 0; i < 8; i++) { registerAttachable(Blocks.stone_slab, i, StandardAttachable.createTop(0.5)); registerAttachable(Blocks.wooden_slab, i, StandardAttachable.createTop(0.5)); } for (int i = 8; i < 16; i++) { registerAttachable(Blocks.stone_slab, i, StandardAttachable.createBottom(0.5)); registerAttachable(Blocks.wooden_slab, i, StandardAttachable.createBottom(0.5)); } registerAttachable(ModBlocks.candelabra, StandardAttachable.createBottom(0.0625)); } @Override public void registerAttachable (String modId, String blockId, int meta, IAttachable attachable) { if (modId != null && blockId != null && attachable != null) { UniqueMetaIdentifier id = new UniqueMetaIdentifier(modId, blockId, meta); registry.register(id, attachable); } } @Override public void registerAttachable (String modId, String blockId, IAttachable attachable) { if (modId != null && blockId != null && attachable != null) { UniqueMetaIdentifier id = new UniqueMetaIdentifier(modId, blockId); registry.register(id, attachable); } } @Override public void registerAttachable (Block block, int meta, IAttachable attachable) { if (block != null && attachable != null) { UniqueMetaIdentifier id = UniqueMetaIdentifier.createFor(block, meta); registry.register(id, attachable); } } @Override public void registerAttachable (Block block, IAttachable attachable) { if (block != null && attachable != null) { UniqueMetaIdentifier id = UniqueMetaIdentifier.createFor(block); registry.register(id, attachable); } } @Override public void registerAttachable (ItemStack blockItemStack, IAttachable attachable) { UniqueMetaIdentifier id = UniqueMetaIdentifier.createFor(blockItemStack); if (id != null && attachable != null) registry.register(id, attachable); } @Override public IAttachable getAttachable (Block block, int meta) { UniqueMetaIdentifier id = UniqueMetaIdentifier.createFor(block, meta); if (id != null) return registry.getEntry(id); return null; } }