package joshie.harvest.core.base.render;
import joshie.harvest.api.buildings.Building;
import joshie.harvest.buildings.HFBuildings;
import joshie.harvest.buildings.item.ItemBuilding;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
import java.util.HashMap;
@SideOnly(Side.CLIENT)
public class BuildingDefinition implements ItemMeshDefinition {
private static BuildingDefinition INSTANCE;
protected final HashMap<Building, ModelResourceLocation> models = new HashMap<>();
protected final ItemBuilding item;
public BuildingDefinition(ItemBuilding item) {
this.item = item;
ModelBakery.registerItemVariants(item);
BuildingDefinition.INSTANCE = this;
}
public static void registerEverything() {
for (Building building : Building.REGISTRY.values()) {
ModelResourceLocation model = new ModelResourceLocation(new ResourceLocation(building.getResource().getResourceDomain(), "buildings/" + building.getResource().getResourcePath()), "inventory");
ModelBakery.registerItemVariants(HFBuildings.STRUCTURES, model);
INSTANCE.models.put(building, model);
}
}
@Override
@Nonnull
public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) {
return models.get(item.getObjectFromStack(stack));
}
}