This commit is contained in:
Bob 2024-06-26 21:51:32 +02:00
parent 725a3a8a10
commit 65d9f82b7d
46 changed files with 4575 additions and 47 deletions

View File

@ -978,6 +978,7 @@ public class ModBlocks {
public static Block machine_electrolyser;
public static Block machine_excavator;
public static Block machine_ore_slopper;
public static Block machine_autosaw;
public static Block machine_mining_laser;
@ -2184,6 +2185,7 @@ public class ModBlocks {
machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_ore_slopper = new MachineOreSlopper().setBlockName("machine_ore_slopper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser");
barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade");
machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler");
@ -3258,6 +3260,7 @@ public class ModBlocks {
register(machine_coker);
register(machine_autosaw);
register(machine_excavator);
register(machine_ore_slopper);
register(machine_mining_laser);
register(barricade);
register(machine_turbofan);

View File

@ -0,0 +1,31 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.machine.TileEntityMachineOreSlopper;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class MachineOreSlopper extends BlockDummyable {
public MachineOreSlopper() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityMachineOreSlopper();
return null;
}
@Override
public int[] getDimensions() {
return new int[] {3, 0, 3, 3, 1, 1};
}
@Override
public int getOffset() {
return 3;
}
}

View File

@ -12,8 +12,11 @@ import cpw.mods.fml.relauncher.SideOnly;
import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.lib.RefStrings;
import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap;
import com.hbm.render.icon.TextureAtlasSpriteMutatable;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -26,13 +29,18 @@ public class ItemBedrockOreNew extends Item {
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg) {
super.registerIcons(reg);
for(int i = 0; i < BedrockOreGrade.values().length; i++) {
BedrockOreGrade grade = BedrockOreGrade.values()[i];
for(int j = 0; j < BedrockOreType.values().length; j++) {
BedrockOreType type = BedrockOreType.values()[j];
this.icons[i * BedrockOreType.values().length + j] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix);
if(reg instanceof TextureMap) {
TextureMap map = (TextureMap) reg;
for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i];
for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j];
String placeholderName = RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix + "-" + (i * BedrockOreType.values().length + j);
TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, type.light, type.dark));
map.setTextureEntry(placeholderName, mutableIcon);
this.icons[i * BedrockOreType.values().length + j] = mutableIcon;
}
}
}
}
@ -41,10 +49,8 @@ public class ItemBedrockOreNew extends Item {
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tab, List list) {
for(int i = 0; i < BedrockOreGrade.values().length; i++) {
BedrockOreGrade grade = BedrockOreGrade.values()[i];
for(int j = 0; j < BedrockOreType.values().length; j++) {
BedrockOreType type = BedrockOreType.values()[j];
for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j];
for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i];
list.add(this.make(grade, type));
}
}
@ -52,27 +58,37 @@ public class ItemBedrockOreNew extends Item {
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamageForRenderPass(int meta, int pass) {
public IIcon getIconFromDamage(int meta) {
int icon = this.getGrade(meta).ordinal() * BedrockOreType.values().length + this.getType(meta).ordinal();
return icons[Math.abs(icon % icons.length)];
}
public static enum BedrockOreType {
// primary sulfuric solvent radsolvent
LIGHT_METAL( "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA),
HEAVY_METAL( "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD),
RARE_EARTH( "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR),
ACTINIDE( "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238),
NON_METAL( "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI),
CRYSTALLINE( "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE);
@Override
public String getItemStackDisplayName(ItemStack stack) {
int meta = stack.getItemDamage();
return this.getGrade(meta).name() + " " + this.getType(meta).suffix;
}
public static enum BedrockOreType {
// primary sulfuric solvent radsolvent
LIGHT_METAL( 0xFFFFFF, 0x353535, "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA),
HEAVY_METAL( 0x868686, 0x000000, "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD),
RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR),
ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238),
NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI),
CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE);
public int light;
public int dark;
public String suffix;
public Object primary1, primary2;
public Object byproductAcid1, byproductAcid2, byproductAcid3;
public Object byproductSolvent1, byproductSolvent2, byproductSolvent3;
public Object byproductRad1, byproductRad2, byproductRad3;
private BedrockOreType(String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) {
private BedrockOreType(int light, int dark, String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) {
this.light = light;
this.dark = dark;
this.suffix = suffix;
this.primary1 = p1; this.primary2 = p2;
this.byproductAcid1 = bA1; this.byproductAcid2 = bA2; this.byproductAcid3 = bA3;
@ -80,41 +96,55 @@ public class ItemBedrockOreNew extends Item {
this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3;
}
}
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int pass) {
BedrockOreGrade grade = this.getGrade(stack.getItemDamage());
return grade.tint;
}
public static final int none = 0xFFFFFF;
public static final int roasted = 0xCFCFCF;
public static final int arc = 0xC3A2A2;
public static final int washed = 0xDBE2CB;
public static enum BedrockOreGrade {
BASE("base"), //from the slopper
BASE_ROASTED("base"), //optional combination oven step, yields vitriol
BASE_WASHED("base"), //primitive-ass acidizer with water
PRIMARY("primary"), //centrifuging for more primary
PRIMARY_ROASTED("primary"), //optional comboven
PRIMARY_SULFURIC("primary"), //sulfuric acid
PRIMARY_NOSULFURIC("primary"), //from centrifuging, sulfuric byproduct removed
PRIMARY_SOLVENT("primary"), //solvent
PRIMARY_NOSOLVENT("primary"), //solvent byproduct removed
PRIMARY_RAD("primary"), //radsolvent
PRIMARY_NORAD("primary"), //radsolvent byproduct removed
PRIMARY_FIRST("primary"), //higher first material yield
PRIMARY_SECOND("primary"), //higher second material yield
CRUMBS("crumbs"), //endpoint for primary, recycling
BASE(none, "base"), //from the slopper
BASE_ROASTED(roasted, "base"), //optional combination oven step, yields vitriol
BASE_WASHED(washed, "base"), //primitive-ass acidizer with water
PRIMARY(none, "primary"), //centrifuging for more primary
PRIMARY_ROASTED(roasted, "primary"), //optional comboven
PRIMARY_SULFURIC(0xFFFFD3, "primary"), //sulfuric acid
PRIMARY_NOSULFURIC(0xD3D4FF, "primary"),//from centrifuging, sulfuric byproduct removed
PRIMARY_SOLVENT(0xD3F0FF, "primary"), //solvent
PRIMARY_NOSOLVENT(0xFFDED3, "primary"), //solvent byproduct removed
PRIMARY_RAD(0xECFFD3, "primary"), //radsolvent
PRIMARY_NORAD(0xEBD3FF, "primary"), //radsolvent byproduct removed
PRIMARY_FIRST(0xFFD3D4, "primary"), //higher first material yield
PRIMARY_SECOND(0xD3FFEB, "primary"), //higher second material yield
CRUMBS(none, "crumbs"), //endpoint for primary, recycling
SULFURIC_BYPRODUCT("sulfuric"), //from centrifuging
SULFURIC_ROASTED("sulfuric"), //comboven again
SULFURIC_ARC("sulfuric"), //alternate step
SULFURIC_WASHED("sulfuric"), //sulfuric endpoint
SULFURIC_BYPRODUCT(none, "sulfuric"), //from centrifuging
SULFURIC_ROASTED(roasted, "sulfuric"), //comboven again
SULFURIC_ARC(arc, "sulfuric"), //alternate step
SULFURIC_WASHED(washed, "sulfuric"), //sulfuric endpoint
SOLVENT_BYPRODUCT("solvent"), //from centrifuging
SOLVENT_ROASTED("solvent"), //comboven again
SOLVENT_ARC("solvent"), //alternate step
SOLVENT_WASHED("solvent"), //solvent endpoint
SOLVENT_BYPRODUCT(none, "solvent"), //from centrifuging
SOLVENT_ROASTED(roasted, "solvent"), //comboven again
SOLVENT_ARC(arc, "solvent"), //alternate step
SOLVENT_WASHED(washed, "solvent"), //solvent endpoint
RAD_BYPRODUCT("rad"), //from centrifuging
RAD_ROASTED("rad"), //comboven again
RAD_ARC("rad"), //alternate step
RAD_WASHED("rad"); //rad endpoint
RAD_BYPRODUCT(none, "rad"), //from centrifuging
RAD_ROASTED(roasted, "rad"), //comboven again
RAD_ARC(arc, "rad"), //alternate step
RAD_WASHED(washed, "rad"); //rad endpoint
public int tint;
public String prefix;
private BedrockOreGrade(String prefix) {
private BedrockOreGrade(int tint, String prefix) {
this.tint = tint;
this.prefix = prefix;
}
}

View File

@ -302,6 +302,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDiesel.class, new RenderDieselGen());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCombustionEngine.class, new RenderCombustionEngine());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExcavator.class, new RenderExcavator());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOreSlopper.class, new RenderOreSlopper());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMixer.class, new RenderMixer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHephaestus.class, new RenderHephaestus());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAutosaw.class, new RenderAutosaw());

View File

@ -174,6 +174,7 @@ public class ResourceManager {
//Mining Drill
public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO();
public static final IModelCustom ore_slopper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/ore_slopper.obj")).asVBO();
//Laser Miner
public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")).asVBO();
@ -576,6 +577,7 @@ public class ResourceManager {
//Mining Drill
public static final ResourceLocation mining_drill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_drill.png");
public static final ResourceLocation ore_slopper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ore_slopper.png");
//Laser Miner
public static final ResourceLocation mining_laser_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_base.png");

View File

@ -0,0 +1,95 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraftforge.client.IItemRenderer;
public class RenderOreSlopper extends TileEntitySpecialRenderer implements IItemRendererProvider {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
switch(tile.getBlockMetadata() - BlockDummyable.offset) {
case 3: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(0, 0F, 1F, 0F); break;
case 4: GL11.glRotatef(90, 0F, 1F, 0F); break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.ore_slopper_tex);
ResourceManager.ore_slopper.renderPart("Base");
ResourceManager.ore_slopper.renderPart("Slider");
GL11.glPushMatrix();
double extend = Math.sin(((tile.getWorldObj().getTotalWorldTime() + interp) * 0.1 % (Math.PI * 2))) * 0.625+ 0.625;
GL11.glTranslated(0, -MathHelper.clamp_double(extend - 0.25, 0, 1.25), 0);
ResourceManager.ore_slopper.renderPart("Hydraulics");
GL11.glTranslated(0, -MathHelper.clamp_double(extend, 0, 1.25), 0);
ResourceManager.ore_slopper.renderPart("Bucket");
GL11.glPopMatrix();
double speed = 10;
GL11.glPushMatrix();
GL11.glTranslated(0.375, 2.75, 0);
GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * speed, 0, 0, 1);
GL11.glTranslated(-0.375, -2.75, 0);
ResourceManager.ore_slopper.renderPart("BladesLeft");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(-0.375, 2.75, 0);
GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * -speed, 0, 0, 1);
GL11.glTranslated(0.375, -2.75, 0);
ResourceManager.ore_slopper.renderPart("BladesRight");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 1.875, -1);
GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * -25, 1, 0, 0);
GL11.glTranslated(0, -1.875, 1);
ResourceManager.ore_slopper.renderPart("Fan");
GL11.glPopMatrix();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.machine_ore_slopper);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase( ) {
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(3.75, 3.75, 3.75);
}
public void renderCommonWithStack(ItemStack item) {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glRotatef(-90, 0F, 1F, 0F);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.ore_slopper_tex);
ResourceManager.ore_slopper.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -0,0 +1,21 @@
package com.hbm.tileentity.machine;
import com.hbm.tileentity.TileEntityMachineBase;
public class TileEntityMachineOreSlopper extends TileEntityMachineBase {
public TileEntityMachineOreSlopper() {
super(0);
}
@Override
public String getName() {
return "container.machineOreSlopper";
}
@Override
public void updateEntity() {
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB