Hbm-s-Nuclear-Tech-GIT/src/main/java/com/hbm/render/item/ItemRenderLibraryDoors.java
2026-02-01 21:07:48 +01:00

230 lines
8.3 KiB
Java

package com.hbm.render.item;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.NotableComments;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.DoorDecl;
import com.hbm.util.Clock;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
// the ItemRenderLibrary system sucks and is ugly as hell but it's the quickest way of doing it
// due to the sheer size if this stupid fucking class i just janked this part out into its own thing
// that way, code hotswap doesn't take 5 years to work while vomitting out error messages like
// i vomitted out that 20 pack of soggy chicken nuggets last year
// still a better use of €15 than hollow knight
@NotableComments
public class ItemRenderLibraryDoors {
public static void init() {
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.vault_door), new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(3.5, 3.5, 3.5);
}
public void renderCommon() {
GL11.glTranslated(0, -1, 0);
int index = (int) ((Clock.get_ms() % (DoorDecl.VAULT_DOOR.getSkinCount() * 1000)) / 1000);
ResourceLocation doorTex = ResourceManager.pheo_vault_door_3;
ResourceLocation labelTex = ResourceManager.pheo_label_101;
switch(index) {
case 1: labelTex = ResourceManager.pheo_label_87; break;
case 2: labelTex = ResourceManager.pheo_label_106; break;
case 3: doorTex = ResourceManager.pheo_vault_door_4; labelTex = ResourceManager.pheo_label_81; break;
case 4: doorTex = ResourceManager.pheo_vault_door_4; labelTex = ResourceManager.pheo_label_111; break;
case 5: doorTex = ResourceManager.pheo_vault_door_s; labelTex = ResourceManager.pheo_label_2; break;
case 6: doorTex = ResourceManager.pheo_vault_door_s; labelTex = ResourceManager.pheo_label_99; break;
}
bindTexture(doorTex);
ResourceManager.pheo_vault_door.renderPart("Door");
bindTexture(labelTex);
ResourceManager.pheo_vault_door.renderPart("Label");
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -3.75, 0);
GL11.glScaled(2.4, 2.4, 2.4);
}
public void renderCommon() {
GL11.glTranslated(0, 1, 0);
Minecraft.getMinecraft().getTextureManager().bindTexture(DoorDecl.SECURE_ACCESS_DOOR.getCyclingSkins());
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_secure_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.fire_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(3.5, 3.5, 3.5);
}
public void renderCommon() {
Minecraft.getMinecraft().getTextureManager().bindTexture(DoorDecl.FIRE_DOOR.getCyclingSkins());
GL11.glRotated(90, 0, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_fire_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.sliding_blast_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -2.75, 0);
GL11.glScaled(2.5, 2.5, 2.5);
}
public void renderCommon() {
bindTexture(ResourceManager.pheo_blast_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_blast_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -4, 0);
GL11.glScaled(1.8, 1.8, 1.8);
}
public void renderCommon() {
GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.pheo_vehicle_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_vehicle_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.water_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -4, 0);
GL11.glScaled(4, 4, 4);
}
public void renderCommon() {
GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.pheo_water_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_water_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -2, 0);
GL11.glScaled(2, 2, 2);
}
public void renderCommon() {
bindTexture(ResourceManager.silo_hatch_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glRotated(90, 0, 1, 0);
ResourceManager.silo_hatch.renderPart("Frame");
GL11.glTranslated(0, 0.875, -1.875);
GL11.glRotated(-120, 1, 0, 0);
GL11.glTranslated(0, -0.875, 1.875);
GL11.glTranslated(0, 0.25, 0);
ResourceManager.silo_hatch.renderPart("Hatch");
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch_large), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -2, 0);
GL11.glScaled(1.5, 1.5, 1.5);
}
public void renderCommon() {
bindTexture(ResourceManager.silo_hatch_large_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glTranslated(1, 0, 0);
GL11.glRotated(90, 0, 1, 0);
ResourceManager.silo_hatch_large.renderPart("Frame");
GL11.glTranslated(0, 0.875, -2.875);
GL11.glRotated(-120, 1, 0, 0);
GL11.glTranslated(0, -0.875, 2.875);
GL11.glTranslated(0, 0.25, 0);
ResourceManager.silo_hatch_large.renderPart("Hatch");
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -3.5, 0);
GL11.glScaled(3.8, 3.8, 3.8);
}
public void renderCommon() {
bindTexture(ResourceManager.pheo_containment_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_containment_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(5, 5, 5);
}
public void renderCommon() {
bindTexture(ResourceManager.pheo_sliding_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_sliding_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.round_airlock_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -3.75, 0);
GL11.glScaled(3, 3, 3);
}
public void renderCommon() {
Minecraft.getMinecraft().getTextureManager().bindTexture(DoorDecl.ROUND_AIRLOCK_DOOR.getCyclingSkins());
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_airlock_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.sliding_seal_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -5, 0);
GL11.glScaled(7, 7, 7);
}
public void renderCommon() {
bindTexture(ResourceManager.pheo_seal_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_seal_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
ItemRenderLibrary.renderers.put(Item.getItemFromBlock(ModBlocks.blast_door), new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(3, 3, 3);
}
public void renderCommon() {
bindTexture(ResourceManager.blast_door_base_tex); ResourceManager.blast_door_base.renderAll();
bindTexture(ResourceManager.blast_door_tooth_tex); ResourceManager.blast_door_tooth.renderAll();
bindTexture(ResourceManager.blast_door_slider_tex); ResourceManager.blast_door_slider.renderAll();
bindTexture(ResourceManager.blast_door_block_tex); ResourceManager.blast_door_block.renderAll();
}});
}
private static void bindTexture(ResourceLocation res) {
Minecraft.getMinecraft().renderEngine.bindTexture(res);
}
}