Files
TAIGA-OV/src/main/java/com/sosnitzka/ztic_addon/proxy/ClientProxy.java

85 lines
3.6 KiB
Java

package com.sosnitzka.ztic_addon.proxy;
import com.sosnitzka.ztic_addon.Blocks;
import com.sosnitzka.ztic_addon.Items;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.item.Item;
import net.minecraftforge.fluids.Fluid;
import slimeknights.tconstruct.library.client.MaterialRenderInfo;
import slimeknights.tconstruct.library.client.texture.MetalTextureTexture;
import slimeknights.tconstruct.library.materials.Material;
import java.lang.reflect.Field;
import static com.sosnitzka.ztic_addon.Materials.*;
public class ClientProxy extends ServerProxy {
private static void registerBlockModel(Block block) {
registerItemModel(Item.getItemFromBlock(block));
}
private static void registerItemModel(Item item) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
@Override
public void registerStuff() {
Field[] itemFields = Items.class.getDeclaredFields();
for (Field field : itemFields) {
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
Class<?> targetType = field.getType();
try {
Item item = (Item) field.get(targetType);
registerItemModel(item);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
Field[] blockFields = Blocks.class.getDeclaredFields();
for (Field field : blockFields) {
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
Class<?> targetType = field.getType();
try {
Block block = (Block) field.get(targetType);
registerBlockModel(block);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
public void setRenderInfo(final Material material, Fluid fluid) {
/* if (material != bismuth) {
material.setRenderInfo(new MaterialRenderInfo.Metal(fluid.getColor(), 0.4f, 0.2f, 0f));
} else bismuth.setRenderInfo(new MaterialRenderInfo.BlockTexture("ztic_addon:blocks/bismuth_block")); */
if (material == adamantite) renderTo(material, 0xd55cdf, 0.5f, 0.8f, 0.2f);
else if (material == solarium) renderTo(material, 0xffff00, 0.6f, 1.8f, 0.0f);
else if (material == proxideum) renderTo(material, 0x2d8f8b, 0.4f, 0.3f, 0.1f);
else if (material == tiberium) renderTo(material, 0x33ff33, 0.5f, 0.2f, 0.1f);
else if (material == bismuth) renderTo(material, 0xffffff, 0.4f, 0.2f, 0.0f);
else if (material == dyonite) renderTo(material, 0xffe240, 0.6f, 0.8f, 0.2f);
else {
material.setRenderInfo(new MaterialRenderInfo.BlockTexture("ztic_addon:blocks/" + material.getFluid().getName() + "_block"));
}
}
private void renderTo(Material material, final int f, final float shine, final float brightness, final float hueshift) {
material.setRenderInfo(new MaterialRenderInfo.AbstractMaterialRenderInfo() {
@Override
public TextureAtlasSprite getTexture(TextureAtlasSprite baseTexture, String location) {
return new MetalTextureTexture("ztic_addon:blocks/materials/adamantite", baseTexture, location, f, shine, brightness, hueshift);
}
});
}
}