anvil NEI handler, some minor adjustments

This commit is contained in:
Bob 2021-12-26 20:45:33 +01:00
parent ced90d7874
commit 7967275373
23 changed files with 356 additions and 157 deletions

View File

@ -68,7 +68,7 @@ public class MachineGasCent extends BlockDummyable implements IMultiblock {
@Override @Override
public int[] getDimensions() { public int[] getDimensions() {
return new int[] {2, 0, 0, 0, 0, 0,}; return new int[] {3, 0, 0, 0, 0, 0,};
} }
@Override @Override

View File

@ -1,5 +1,7 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
@ -28,6 +30,8 @@ import net.minecraft.world.World;
public class NTMAnvil extends BlockFalling implements ITooltipProvider { public class NTMAnvil extends BlockFalling implements ITooltipProvider {
public final int tier; public final int tier;
public static final HashMap<Integer, List<NTMAnvil>> tierMap = new HashMap();
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private IIcon iconTop; private IIcon iconTop;
@ -38,6 +42,27 @@ public class NTMAnvil extends BlockFalling implements ITooltipProvider {
this.setHardness(5.0F); this.setHardness(5.0F);
this.setResistance(100.0F); this.setResistance(100.0F);
this.tier = tier; this.tier = tier;
List<NTMAnvil> anvils = tierMap.get((Integer)tier);
if(anvils == null)
anvils = new ArrayList();
anvils.add(this);
tierMap.put((Integer)tier, anvils);
}
public static List<ItemStack> getAnvilsFromTier(int tier) {
List<NTMAnvil> anvils = tierMap.get((Integer)tier);
if(anvils != null) {
List<ItemStack> stacks = new ArrayList();
for(NTMAnvil anvil : anvils)
stacks.add(new ItemStack(anvil));
return stacks;
}
return new ArrayList();
} }
@Override @Override

View File

@ -1,5 +1,7 @@
package com.hbm.handler; package com.hbm.handler;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockBobble.BobbleType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.tool.IItemAbility; import com.hbm.items.tool.IItemAbility;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
@ -20,6 +22,7 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityMagmaCube; import net.minecraft.entity.monster.EntityMagmaCube;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntitySlime; import net.minecraft.entity.monster.EntitySlime;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
@ -316,4 +319,35 @@ public abstract class WeaponAbility {
return I18n.format(getName()); return I18n.format(getName());
} }
} }
public static class BobbleAbility extends WeaponAbility {
@Override
public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) {
if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) {
EntityMob mob = (EntityMob) victim;
int chance = 1000;
if(mob.getMaxHealth() > 20) {
chance = 750;
}
if(world.rand.nextInt(chance) == 0)
mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F);
}
}
@Override
public String getName() {
return "weapon.ability.bobble";
}
@Override
public String getFullName() {
return I18n.format(getName());
}
}
} }

View File

@ -2,25 +2,27 @@ package com.hbm.handler.nei;
import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect;
import java.util.Arrays; import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.NTMAnvil;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.gui.GUIAnvil;
import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes;
import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe;
import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput;
import com.hbm.inventory.recipes.anvil.AnvilRecipes.OverlayType;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.util.ItemStackUtil;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.NEIServerUtils; import codechicken.nei.NEIServerUtils;
import codechicken.nei.PositionedStack; import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class AnvilRecipeHandler extends TemplateRecipeHandler { public class AnvilRecipeHandler extends TemplateRecipeHandler {
@ -31,22 +33,87 @@ public class AnvilRecipeHandler extends TemplateRecipeHandler {
public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { public class RecipeSet extends TemplateRecipeHandler.CachedRecipe {
PositionedStack output; List<PositionedStack> input = new ArrayList();
List<PositionedStack> output = new ArrayList();
PositionedStack anvil;
int tier; int tier;
OverlayType shape;
public RecipeSet(ItemStack output, int tier) { public RecipeSet(List<Object> in, List<Object> out, int tier) {
this.output = new PositionedStack(output, 111, 24);
//not the prettiest of solutions but certainly the most pleasant to work with
int inLine = 1;
int outLine = 1;
int inOX = 0;
int inOY = 0;
int outOX = 0;
int outOY = 0;
int anvX = 0;
int anvY = 31;
if(in.size() == 1 && out.size() == 1) {
shape = OverlayType.SMITHING;
inOX = 48;
inOY = 24;
outOX = 102;
outOY = 24;
anvX = 75;
} else if(in.size() == 1 && out.size() > 1) {
shape = OverlayType.RECYCLING;
outLine = 6;
inOX = 12;
inOY = 24;
outOX = 48;
outOY = 6;
anvX = 30;
} else if(in.size() > 1 && out.size() == 1) {
shape = OverlayType.CONSTRUCTION;
inLine = 6;
inOX = 12;
inOY = 6;
outOX = 138;
outOY = 24;
anvX = 120;
} else {
shape = OverlayType.NONE;
inLine = 4;
outLine = 4;
inOX = 3;
inOY = 6;
outOX = 93;
outOY = 6;
anvX = 75;
}
for(int i = 0; i < in.size(); i++) {
this.input.add(new PositionedStack(in.get(i), inOX + 18 * (i % inLine), inOY + 18 * (i / inLine)));
}
for(int i = 0; i < out.size(); i++) {
this.output.add(new PositionedStack(out.get(i), outOX + 18 * (i % outLine), outOY + 18 * (i / outLine)));
}
this.anvil = new PositionedStack(NTMAnvil.getAnvilsFromTier(tier), anvX, anvY);
this.tier = tier; this.tier = tier;
} }
@Override @Override
public List<PositionedStack> getIngredients() { public List<PositionedStack> getIngredients() {
return getCycledIngredients(cycleticks / 48, Arrays.asList(output)); return getCycledIngredients(cycleticks / 48, input);
} }
@Override @Override
public PositionedStack getResult() { public PositionedStack getResult() {
return output; return output.get(0);
}
@Override
public List<PositionedStack> getOtherStacks() {
List<PositionedStack> other = new ArrayList();
other.addAll(output);
other.add(anvil);
return getCycledIngredients(cycleticks / 48, other);
} }
} }
@ -62,7 +129,7 @@ public class AnvilRecipeHandler extends TemplateRecipeHandler {
List<AnvilConstructionRecipe> recipes = AnvilRecipes.getConstruction(); List<AnvilConstructionRecipe> recipes = AnvilRecipes.getConstruction();
for(AnvilConstructionRecipe recipe : recipes) { for(AnvilConstructionRecipe recipe : recipes) {
this.arecipes.add(new RecipeSet(recipe.output.get(0).stack.copy(), recipe.tierLower)); this.addRecipeToList(recipe);
} }
} else { } else {
super.loadCraftingRecipes(outputId, results); super.loadCraftingRecipes(outputId, results);
@ -78,7 +145,8 @@ public class AnvilRecipeHandler extends TemplateRecipeHandler {
for(AnvilOutput out : recipe.output) { for(AnvilOutput out : recipe.output) {
if(NEIServerUtils.areStacksSameTypeCrafting(out.stack, result)) { if(NEIServerUtils.areStacksSameTypeCrafting(out.stack, result)) {
this.arecipes.add(new RecipeSet(recipe.output.get(0).stack.copy(), recipe.tierLower)); this.addRecipeToList(recipe);
break;
} }
} }
} }
@ -96,39 +164,92 @@ public class AnvilRecipeHandler extends TemplateRecipeHandler {
@Override @Override
public void loadUsageRecipes(ItemStack ingredient) { public void loadUsageRecipes(ItemStack ingredient) {
List<AnvilConstructionRecipe> recipes = AnvilRecipes.getConstruction();
for(AnvilConstructionRecipe recipe : recipes) {
outer:
for(AStack in : recipe.input) {
List<ItemStack> stacks = in.extractForNEI();
for(ItemStack stack : stacks) {
if(NEIServerUtils.areStacksSameTypeCrafting(stack, ingredient)) {
this.addRecipeToList(recipe);
break outer;
}
}
}
}
}
private void addRecipeToList(AnvilConstructionRecipe recipe) {
List<Object> ins = new ArrayList();
for(AStack input : recipe.input) {
ins.add(input.extractForNEI());
}
List<Object> outs = new ArrayList();
for(AnvilOutput output : recipe.output) {
ItemStack stack = output.stack.copy();
if(output.chance != 1) {
ItemStackUtil.addTooltipToStack(stack, EnumChatFormatting.RED + "" + (((int)(output.chance * 1000)) / 10D) + "%");
}
outs.add(stack);
}
this.arecipes.add(new RecipeSet(ins, outs, recipe.tierLower));
} }
@Override @Override
public void loadTransferRects() { public void loadTransferRects() {
}
@Override
public void drawExtras(int recipe) {
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
for(int i = 0; i < 3; i++) //hey asshole, stop nulling my fucking lists
for(int j = 0; j < 3; j++) transferRectsGui = new LinkedList<RecipeTransferRect>();
fontRenderer.drawString("Tier " + rec.tier + " anvil", 51 + i, 50 + j, 0x000000); guiGui = new LinkedList<Class<? extends GuiContainer>>();
fontRenderer.drawString("Tier " + rec.tier + " anvil", 52, 51, 0xffffff);
}
@Override transferRectsGui.add(new RecipeTransferRect(new Rectangle(11, 42, 36, 18), "ntmAnvil"));
public int recipiesPerPage() { transferRectsGui.add(new RecipeTransferRect(new Rectangle(65, 42, 36, 18), "ntmAnvil"));
return 1;
guiGui.add(GUIAnvil.class);
RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui);
} }
@Override @Override
public String getGuiTexture() { public String getGuiTexture() {
return RefStrings.MODID + ":textures/gui/nei/gui_nei_anvil.png"; return RefStrings.MODID + ":textures/gui/nei/gui_nei_anvil.png";
} }
@Override @Override
public void drawBackground(int recipeIndex) { public void drawBackground(int recipe) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); super.drawBackground(recipe);
GuiDraw.changeTexture(getGuiTexture());
drawTexturedModalRect(0, 0, 5, 11, 166, 120); RecipeSet set = (RecipeSet) this.arecipes.get(recipe);
switch(set.shape) {
case NONE:
drawTexturedModalRect(2, 5, 5, 87, 72, 54); //in
drawTexturedModalRect(92, 5, 5, 87, 72, 54); //out
drawTexturedModalRect(74, 14, 131, 96, 18, 36); //operation
break;
case SMITHING:
drawTexturedModalRect(47, 23, 113, 105, 18, 18); //in
drawTexturedModalRect(101, 23, 113, 105, 18, 18); //out
drawTexturedModalRect(74, 14, 149, 96, 18, 36); //operation
break;
case CONSTRUCTION:
drawTexturedModalRect(11, 5, 5, 87, 108, 54); //in
drawTexturedModalRect(137, 23, 113, 105, 18, 18); //out
drawTexturedModalRect(119, 14, 167, 96, 18, 36); //operation
break;
case RECYCLING:
drawTexturedModalRect(11, 23, 113, 105, 18, 18); //in
drawTexturedModalRect(47, 5, 5, 87, 108, 54); //out
drawTexturedModalRect(29, 14, 185, 96, 18, 36); //operation
break;
}
} }
} }

View File

@ -140,6 +140,9 @@ public class HazardRegistry {
HazardSystem.register(Items.gunpowder, makeData(EXPLOSIVE, 1F)); HazardSystem.register(Items.gunpowder, makeData(EXPLOSIVE, 1F));
HazardSystem.register(Blocks.tnt, makeData(EXPLOSIVE, 4F)); HazardSystem.register(Blocks.tnt, makeData(EXPLOSIVE, 4F));
HazardSystem.register(Items.pumpkin_pie, makeData(EXPLOSIVE, 4F)); HazardSystem.register(Items.pumpkin_pie, makeData(EXPLOSIVE, 4F));
HazardSystem.register(ModItems.ball_dynamite, makeData(EXPLOSIVE, 2F));
HazardSystem.register(ModItems.stick_dynamite, makeData(EXPLOSIVE, 1F));
HazardSystem.register("dustCoal", makeData(COAL, powder)); HazardSystem.register("dustCoal", makeData(COAL, powder));
HazardSystem.register("dustTinyCoal", makeData(COAL, powder_tiny)); HazardSystem.register("dustTinyCoal", makeData(COAL, powder_tiny));

View File

@ -260,7 +260,7 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50);
makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100);
makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250); makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250);
makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(DESH.ingot(), 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 8), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.wire_red_copper, 32) },300);
makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250);

View File

@ -50,9 +50,9 @@ public class BreederRecipes {
recipes.put(new ComparableStack(ModItems.rod_neptunium), new BreederRecipe(ModItems.rod_pu238, 3)); recipes.put(new ComparableStack(ModItems.rod_neptunium), new BreederRecipe(ModItems.rod_pu238, 3));
recipes.put(new ComparableStack(ModItems.rod_dual_neptunium), new BreederRecipe(ModItems.rod_dual_pu238, 3)); recipes.put(new ComparableStack(ModItems.rod_dual_neptunium), new BreederRecipe(ModItems.rod_dual_pu238, 3));
recipes.put(new ComparableStack(ModItems.rod_quad_neptunium), new BreederRecipe(ModItems.rod_quad_pu238, 3)); recipes.put(new ComparableStack(ModItems.rod_quad_neptunium), new BreederRecipe(ModItems.rod_quad_pu238, 3));
recipes.put(new ComparableStack(ModItems.rod_pu238), new BreederRecipe(ModItems.rod_pu239, 2)); recipes.put(new ComparableStack(ModItems.rod_pu238), new BreederRecipe(ModItems.rod_pu239, 4));
recipes.put(new ComparableStack(ModItems.rod_dual_pu238), new BreederRecipe(ModItems.rod_dual_pu239, 2)); recipes.put(new ComparableStack(ModItems.rod_dual_pu238), new BreederRecipe(ModItems.rod_dual_pu239, 4));
recipes.put(new ComparableStack(ModItems.rod_quad_pu238), new BreederRecipe(ModItems.rod_quad_pu239, 2)); recipes.put(new ComparableStack(ModItems.rod_quad_pu238), new BreederRecipe(ModItems.rod_quad_pu239, 4));
recipes.put(new ComparableStack(ModItems.rod_pu239), new BreederRecipe(ModItems.rod_pu240, 2)); recipes.put(new ComparableStack(ModItems.rod_pu239), new BreederRecipe(ModItems.rod_pu240, 2));
recipes.put(new ComparableStack(ModItems.rod_dual_pu239), new BreederRecipe(ModItems.rod_dual_pu240, 2)); recipes.put(new ComparableStack(ModItems.rod_dual_pu239), new BreederRecipe(ModItems.rod_dual_pu240, 2));
recipes.put(new ComparableStack(ModItems.rod_quad_pu239), new BreederRecipe(ModItems.rod_quad_pu240, 2)); recipes.put(new ComparableStack(ModItems.rod_quad_pu239), new BreederRecipe(ModItems.rod_quad_pu240, 2));

View File

@ -21,7 +21,7 @@ public class GasCentrifugeRecipes {
MEUF6 (200, 100, "HEUF6", "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)), MEUF6 (200, 100, "HEUF6", "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)),
HEUF6 (300, 0, "NONE", "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), HEUF6 (300, 0, "NONE", "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)),
PF6 (300, 0, "NONE", "Plutonium Hexafluoride", false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)); PF6 (300, 0, "NONE", "Plutonium Hexafluoride", true, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1));
int fluidConsumed; int fluidConsumed;
int fluidProduced; int fluidProduced;

View File

@ -5197,7 +5197,8 @@ public class ModItems {
cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe");
ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 1000, 15.0F, 2.5F, 25).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 1000, 15.0F, 2.5F, 25).setRepairItem(new ItemStack(ModItems.ingot_cobalt));
cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt)
.addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword");
cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE)
.addBreakAbility(new ToolAbility.RecursionAbility(4)) .addBreakAbility(new ToolAbility.RecursionAbility(4))
.addBreakAbility(new ToolAbility.HammerAbility(1)) .addBreakAbility(new ToolAbility.HammerAbility(1))
@ -5219,7 +5220,8 @@ public class ModItems {
ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 1000, 20.0F, 2.5F, 30).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 1000, 20.0F, 2.5F, 30).setRepairItem(new ItemStack(ModItems.ingot_starmetal));
starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal)
.addHitAbility(new WeaponAbility.BeheaderAbility()) .addHitAbility(new WeaponAbility.BeheaderAbility())
.addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword"); .addHitAbility(new WeaponAbility.StunAbility(3))
.addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword");
starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE) starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE)
.addBreakAbility(new ToolAbility.RecursionAbility(6)) .addBreakAbility(new ToolAbility.RecursionAbility(6))
.addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.HammerAbility(2))

View File

@ -186,23 +186,17 @@ public class HbmChestContents {
private static WeightedRandomChestContent[] missile = new WeightedRandomChestContent[] { private static WeightedRandomChestContent[] missile = new WeightedRandomChestContent[] {
new WeightedRandomChestContent(ModItems.missile_generic, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.missile_generic, 0, 1, 1, 4),
new WeightedRandomChestContent(ModItems.missile_incendiary, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.missile_incendiary, 0, 1, 1, 4),
new WeightedRandomChestContent(ModItems.missile_cluster, 0, 1, 1, 4),
new WeightedRandomChestContent(ModItems.missile_buster, 0, 1, 1, 4),
new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.launch_pad), 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.designator, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.designator, 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 1),
new WeightedRandomChestContent(ModItems.thruster_small, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.thruster_small, 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.thruster_medium, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.thruster_medium, 0, 1, 1, 4),
new WeightedRandomChestContent(ModItems.thruster_large, 0, 1, 1, 2),
new WeightedRandomChestContent(ModItems.fuel_tank_small, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.fuel_tank_small, 0, 1, 1, 5),
new WeightedRandomChestContent(ModItems.fuel_tank_medium, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.fuel_tank_medium, 0, 1, 1, 4),
new WeightedRandomChestContent(ModItems.fuel_tank_small, 0, 1, 1, 2),
new WeightedRandomChestContent(ModItems.warhead_mirvlet, 0, 1, 1, 1),
new WeightedRandomChestContent(ModItems.warhead_nuclear, 0, 1, 1, 1),
new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1),
new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 1, 1) }; new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 1, 1),
new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 10) };
private static WeightedRandomChestContent[] spaceship = new WeightedRandomChestContent[] { private static WeightedRandomChestContent[] spaceship = new WeightedRandomChestContent[] {
new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5),

View File

@ -108,10 +108,10 @@ public class HbmWorldGen implements IWorldGenerator {
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cinnebarSpawn, 4, 8, 16, ModBlocks.ore_cinnebar); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cinnebarSpawn, 4, 8, 16, ModBlocks.ore_cinnebar);
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cobaltSpawn, 4, 4, 8, ModBlocks.ore_cobalt); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cobaltSpawn, 4, 4, 8, ModBlocks.ore_cobalt);
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.ironClusterSpawn, 6, 5, 50, ModBlocks.cluster_iron); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.ironClusterSpawn, 6, 15, 45, ModBlocks.cluster_iron);
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.titaniumClusterSpawn, 6, 5, 30, ModBlocks.cluster_titanium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.titaniumClusterSpawn, 6, 15, 30, ModBlocks.cluster_titanium);
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 5, 40, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium);
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 5, 20, ModBlocks.cluster_copper); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper);
if(GeneralConfig.enable528ColtanSpawn) { if(GeneralConfig.enable528ColtanSpawn) {
DungeonToolbox.generateOre(world, rand, i, j, GeneralConfig.coltanRate, 4, 15, 40, ModBlocks.ore_coltan); DungeonToolbox.generateOre(world, rand, i, j, GeneralConfig.coltanRate, 4, 15, 40, ModBlocks.ore_coltan);

View File

@ -732,7 +732,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', POLYMER.ingot(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', POLYMER.ingot(), 'T', ModBlocks.machine_transformer });
addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, FluidType.ACID.ordinal()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, FluidType.ACID.ordinal()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer });
addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen });
addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"TCT", "HUH", "TCT", 'T', TC99.nugget(), 'C', ModItems.coil_copper, 'H', ModItems.coil_tungsten, 'U', ModItems.upgrade_template}); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"TCT", "HUH", "TCT", 'T', ModItems.nugget_bismuth, 'C', ModItems.coil_copper, 'H', ModItems.coil_tungsten, 'U', ModItems.upgrade_template});
addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key });
addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm });

View File

@ -57,7 +57,7 @@ public class AnvilCraftPacket implements IMessage {
if(!recipe.isTierValid(anvil.tier)) //player is using the wrong type of anvil -> bad if(!recipe.isTierValid(anvil.tier)) //player is using the wrong type of anvil -> bad
return null; return null;
int count = m.mode == 1 ? 64 : 1; int count = m.mode == 1 ? (recipe.output.size() > 1 ? 64 : (recipe.output.get(0).stack.getMaxStackSize() / recipe.output.get(0).stack.stackSize)) : 1;
for(int i = 0; i < count; i++) { for(int i = 0; i < count; i++) {

View File

@ -62,10 +62,12 @@ public class ItemRenderLibrary {
renderers.put(Item.getItemFromBlock(ModBlocks.machine_gascent), new ItemRenderBase() { renderers.put(Item.getItemFromBlock(ModBlocks.machine_gascent), new ItemRenderBase() {
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -4, 0); GL11.glTranslated(0, -4, 0);
GL11.glScaled(4.5, 4.5, 4.5); GL11.glScaled(3.5, 3.5, 3.5);
} }
public void renderCommon() { public void renderCommon() {
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.gascent_tex); ResourceManager.gascent.renderPart("Centrifuge"); bindTexture(ResourceManager.gascent_tex); ResourceManager.gascent.renderPart("Centrifuge");
GL11.glShadeModel(GL11.GL_FLAT);
}}); }});
renderers.put(Item.getItemFromBlock(ModBlocks.iter), new ItemRenderBase() { renderers.put(Item.getItemFromBlock(ModBlocks.iter), new ItemRenderBase() {

View File

@ -30,10 +30,16 @@ public class RenderCentrifuge extends TileEntitySpecialRenderer {
} }
if(tileEntity instanceof TileEntityMachineGasCent) { if(tileEntity instanceof TileEntityMachineGasCent) {
GL11.glRotatef(180, 0F, 1F, 0F);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.gascent_tex); bindTexture(ResourceManager.gascent_tex);
ResourceManager.gascent.renderPart("Centrifuge"); ResourceManager.gascent.renderPart("Centrifuge");
ResourceManager.gascent.renderPart("Flag"); ResourceManager.gascent.renderPart("Flag");
GL11.glShadeModel(GL11.GL_FLAT);
} }
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View File

@ -52,8 +52,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
private static final int[] slots_bottom = new int[] {2, 3, 4}; private static final int[] slots_bottom = new int[] {2, 3, 4};
private static final int[] slots_side = new int[] { }; private static final int[] slots_side = new int[] { };
private String customName;
public TileEntityMachineGasCent() { public TileEntityMachineGasCent() {
super(6); super(6);
tank = new FluidTank(FluidType.UF6, 2000, 0); tank = new FluidTank(FluidType.UF6, 2000, 0);
@ -65,28 +63,21 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
public String getName() { public String getName() {
return "container.gasCentrifuge"; return "container.gasCentrifuge";
} }
@Override
public int[] getAccessibleSlotsFromSide(int side) {
return side == 0 ? slots_bottom : side == 1 ? slots_top : slots_side;
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
power = nbt.getLong("power"); power = nbt.getLong("power");
progress = nbt.getShort("progress"); progress = nbt.getShort("progress");
tank.readFromNBT(nbt, "tank"); tank.readFromNBT(nbt, "tank");
inputTank.readFromNBT(nbt, "inputTank"); inputTank.readFromNBT(nbt, "inputTank");
outputTank.readFromNBT(nbt, "outputTank"); outputTank.readFromNBT(nbt, "outputTank");
slots = new ItemStack[getSizeInventory()];
for(int i = 0; i < list.tagCount(); i++)
{
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length)
{
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
}
}
} }
@Override @Override
@ -97,26 +88,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
tank.writeToNBT(nbt, "tank"); tank.writeToNBT(nbt, "tank");
inputTank.writeToNBT(nbt, "inputTank"); inputTank.writeToNBT(nbt, "inputTank");
outputTank.writeToNBT(nbt, "outputTank"); outputTank.writeToNBT(nbt, "outputTank");
NBTTagList list = new NBTTagList();
for(int i = 0; i < slots.length; i++)
{
if(slots[i] != null)
{
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte)i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
nbt.setTag("items", list);
} }
@Override
public int[] getAccessibleSlotsFromSide(int meta)
{
return meta == 0 ? slots_bottom : (meta == 1 ? slots_top : slots_side);
}
@Override @Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) { public boolean canExtractItem(int i, ItemStack itemStack, int j) {
@ -398,15 +370,21 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
return list; return list;
} }
AxisAlignedBB bb = null;
@Override @Override
public AxisAlignedBB getRenderBoundingBox() { public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 5, zCoord + 1);
}
return bb;
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() public double getMaxRenderDistanceSquared() {
{
return 65536.0D; return 65536.0D;
} }
@ -461,44 +439,44 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
type = PseudoFluidType.valueOf(nbt.getString(s + "_type")); type = PseudoFluidType.valueOf(nbt.getString(s + "_type"));
} }
/* ______ ______ /* ______ ______
* _I____I_ _I____I_ * _I____I_ _I____I_
* / \\\ / \\\ * / \\\ / \\\
* |IF{ || || } || | * |IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{|| || } || | * | IF{|| || } || |
* | || || || | * | || || || |
* | } || ||IF{ || | * | } || ||IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{|| | * | } || || IF{|| |
* |IF{ || || } || | * |IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{|| || } || | * | IF{|| || } || |
* | || || || | * | || || || |
* | } || ||IF{ || | * | } || ||IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{|| | * | } || || IF{|| |
* |IF{ || || } || | * |IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{ || || } || | * | IF{ || || } || |
* | IF{|| || } || | * | IF{|| || } || |
* | || || || | * | || || || |
* | } || ||IF{ || | * | } || ||IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{ || | * | } || || IF{ || |
* | } || || IF{|| | * | } || || IF{|| |
* _|_______||_||_______||_|_ * _|_______||_||_______||_|_
* | | * | |
* | | * | |
* | |==========| | * | |==========| |
* | |NESTED | | * | |NESTED | |

View File

@ -0,0 +1,32 @@
package com.hbm.util;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
public class ItemStackUtil {
/**
* UNSAFE! Will ignore all existing tags and override them! In its current state, only fit for items we know don't have any display tags!
* Will, however, respect existing NBT tags
* @param stack
* @param lines
*/
public static void addTooltipToStack(ItemStack stack, String... lines) {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
NBTTagCompound display = new NBTTagCompound();
NBTTagList lore = new NBTTagList();
for(String line : lines) {
lore.appendTag(new NBTTagString(EnumChatFormatting.RESET + "" + EnumChatFormatting.GRAY + line));
}
display.setTag("Lore", lore);
stack.stackTagCompound.setTag("display", display);
}
}

View File

@ -3569,6 +3569,7 @@ tool.ability.silktouch=Behutsamkeit
tool.ability.smelter=Auto-Ofen tool.ability.smelter=Auto-Ofen
weapon.ability.beheader=Köpfer weapon.ability.beheader=Köpfer
weapon.ability.bobble=Glück des Sammlers
# Should rhyme with the translation for "chainsaw" # Should rhyme with the translation for "chainsaw"
weapon.ability.chainsaw=Skelettensäge weapon.ability.chainsaw=Skelettensäge
weapon.ability.fire=Flammend weapon.ability.fire=Flammend

View File

@ -3647,6 +3647,7 @@ tool.ability.silktouch=Silk Touch
tool.ability.smelter=Auto-Smelter tool.ability.smelter=Auto-Smelter
weapon.ability.beheader=Decapitator weapon.ability.beheader=Decapitator
weapon.ability.bobble=Luck of the Collector
# Should rhyme with the translation for "chainsaw" # Should rhyme with the translation for "chainsaw"
weapon.ability.chainsaw=Painsaw weapon.ability.chainsaw=Painsaw
weapon.ability.fire=Flaming weapon.ability.fire=Flaming

View File

@ -250,40 +250,40 @@ v -0.056348 0.632910 -0.687500
v -0.079687 0.576563 -0.687500 v -0.079687 0.576563 -0.687500
v -0.056348 0.520215 -0.687500 v -0.056348 0.520215 -0.687500
v 0.000000 0.656250 -0.937500 v 0.000000 0.656250 -0.937500
vt 0.125000 0.125000 vt 0.875000 0.125000
vt 0.000000 0.187500 vt 1.000000 0.187500
vt 0.000000 0.125000 vt 1.000000 0.125000
vt 0.812500 0.187500 vt 0.187500 0.187500
vt 0.687500 0.125000 vt 0.312500 0.125000
vt 0.812500 0.125000
vt 0.687500 0.187500
vt 0.562500 0.125000
vt 0.125000 0.187500
vt 0.187500 0.125000 vt 0.187500 0.125000
vt 0.187500 0.250000 vt 0.312500 0.187500
vt 0.562500 0.250000 vt 0.437500 0.125000
vt 0.250000 0.312500 vt 0.875000 0.187500
vt 0.812500 0.125000
vt 0.812500 0.250000
vt 0.437500 0.250000
vt 0.750000 0.312500
vt 0.500000 0.437500 vt 0.500000 0.437500
vt 0.500000 0.312500 vt 0.500000 0.312500
vt 0.250000 0.500000 vt 0.750000 0.500000
vt 0.625000 0.562500 vt 0.375000 0.562500
vt 0.187500 0.562500 vt 0.812500 0.562500
vt 0.000000 0.562500 vt 1.000000 0.562500
vt 0.000000 0.812500
vt 1.000000 0.812500 vt 1.000000 0.812500
vt 1.000000 0.687500 vt 0.000000 0.812500
vt 0.125000 0.812500 vt 0.000000 0.687500
vt -0.000000 0.625000 vt 0.875000 0.812500
vt 0.125000 0.625000 vt 1.000000 0.625000
vt 0.875000 0.625000
vt 0.312500 0.625000 vt 0.312500 0.625000
vt 0.500000 0.687500 vt 0.500000 0.562500
vt 0.312500 0.687500
vt 0.312500 0.562500 vt 0.312500 0.562500
vt 0.312500 0.687500
vt 0.500000 0.625000 vt 0.500000 0.625000
vt 0.750000 0.625000 vt 0.750000 0.625000
vt 0.500000 0.562500 vt 0.500000 0.687500
vt 0.750000 0.562500 vt 0.750000 0.687500
vt 0.000000 0.812500 vt 1.000000 0.812500
vn -1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000
vn -0.7071 0.0000 -0.7071 vn -0.7071 0.0000 -0.7071
vn -0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 B

After

Width:  |  Height:  |  Size: 1.1 KiB