toasters, crappy screens

This commit is contained in:
Bob 2024-02-28 21:01:07 +01:00
parent f43456b459
commit 0c8ee5aa19
19 changed files with 673 additions and 4 deletions

View File

@ -434,8 +434,10 @@ public class ModBlocks {
public static Block brick_forgotten;
public static Block brick_red;
public static Block deco_computer;
public static Block deco_crt;
public static Block deco_toaster;
public static Block filing_cabinet;
@ -1670,6 +1672,8 @@ public class ModBlocks {
brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000);
deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder");
@ -2884,7 +2888,9 @@ public class ModBlocks {
GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName());
GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName());
GameRegistry.registerBlock(brick_red, brick_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_computer, ItemBlockBase.class, deco_computer.getUnlocalizedName());
register(deco_computer);
register(deco_crt);
register(deco_toaster);
GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName());
GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName());
GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName());

View File

@ -0,0 +1,76 @@
package com.hbm.blocks.generic;
import com.hbm.blocks.BlockMulti;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class BlockDecoCRT extends BlockMulti {
protected String[] variants = new String[] {"crt_clean", "crt_broken", "crt_blinking", "crt_bsod"};
@SideOnly(Side.CLIENT) protected IIcon[] icons;
public BlockDecoCRT(Material mat) {
super(mat);
}
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
@Override
public int getRenderType(){
return renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.icons = new IIcon[variants.length];
for(int i = 0; i < variants.length; i++) {
this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]);
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return this.icons[damageDropped(meta)];
}
@Override
public int damageDropped(int meta) {
return (Math.abs(meta) % 16) / 4;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int meta = stack.getItemDamage();
world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2);
}
@Override
public int getSubCount() {
return 4;
}
}

View File

@ -0,0 +1,93 @@
package com.hbm.blocks.generic;
import com.hbm.blocks.BlockMulti;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockDecoToaster extends BlockMulti {
protected String[] variants = new String[] {"toaster_iron", "toaster_steel", "toaster_wood"};
@SideOnly(Side.CLIENT) protected IIcon[] icons;
public BlockDecoToaster(Material mat) {
super(mat);
}
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
@Override
public int getRenderType(){
return renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.icons = new IIcon[variants.length];
for(int i = 0; i < variants.length; i++) {
this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]);
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return this.icons[damageDropped(meta)];
}
@Override
public int damageDropped(int meta) {
return (Math.abs(meta) % 12) / 4;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int meta = stack.getItemDamage();
world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2);
}
@Override
public int getSubCount() {
return 3;
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
int meta = world.getBlockMetadata(x, y, z);
if(meta % 2 == 0)
this.setBlockBounds(0.25F, 0.0F, 0.375F, 0.75F, 0.325F, 0.625F);
else
this.setBlockBounds(0.375F, 0.0F, 0.25F, 0.625F, 0.325F, 0.75F);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
this.setBlockBoundsBasedOnState(world, x, y, z);
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
}

View File

@ -850,6 +850,8 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerBlockHandler(new RenderCapacitor());
RenderingRegistry.registerBlockHandler(new RenderPedestal());
RenderingRegistry.registerBlockHandler(new RenderLight());
RenderingRegistry.registerBlockHandler(new RenderCRT());
RenderingRegistry.registerBlockHandler(new RenderToaster());
RenderingRegistry.registerBlockHandler(new RenderFoundryBasin());
RenderingRegistry.registerBlockHandler(new RenderFoundryMold());

View File

@ -215,6 +215,11 @@ public class ModEventHandlerClient {
} else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) {
((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ);
}
List<String> text = new ArrayList();
text.add("Meta: " + world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ));
ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text);
} else if(mop.typeOfHit == mop.typeOfHit.ENTITY) {
Entity entity = mop.entityHit;

View File

@ -1472,6 +1472,8 @@ public class ResourceManager {
public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj"));
public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj"));
public static final IModelCustom rtty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj"));
public static final IModelCustom crt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crt.obj"));
public static final IModelCustom toaster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/toaster.obj"));
public static final IModelCustom deco_computer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj"));

View File

@ -38,7 +38,7 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler {
GL11.glTranslated(0, 0.1D, 0);
GL11.glScaled(1.2D, 1.2D, 1.2D);
tessellator.startDrawingQuads();
ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, modelId, false);
ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, 0, false);
tessellator.draw();

View File

@ -0,0 +1,83 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.generic.BlockDecoCRT;
import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class RenderCRT implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, metadata * 4);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
GL11.glTranslated(0, -0.5, 0);
tessellator.startDrawingQuads();
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crt, iicon, tessellator, (float) Math.PI * -0.5F, false);
tessellator.draw();
GL11.glPopMatrix();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z));
int brightness = block.getMixedBrightnessForBlock(world, x, y, z);
tessellator.setBrightness(brightness);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
float rotation = 0;
int metaOrig = world.getBlockMetadata(x, y, z);
int meta = metaOrig % 4;
switch(meta) {
default: rotation = 0.5F * (float) Math.PI; break;
case 1: break;
case 2: rotation = 1.5F * (float) Math.PI; break;
case 3: rotation = (float) Math.PI; break;
}
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Monitor", iicon, tessellator, rotation, true);
if(metaOrig >= 8) tessellator.setBrightness(240);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Screen", iicon, tessellator, rotation, true);
tessellator.setBrightness(brightness);
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return BlockDecoCRT.renderID;
}
}

View File

@ -0,0 +1,80 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.generic.BlockDecoToaster;
import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class RenderToaster implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, metadata * 4);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
GL11.glTranslated(0, -0.25, 0);
tessellator.startDrawingQuads();
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, (float) Math.PI * -0.5F, false);
tessellator.draw();
GL11.glPopMatrix();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z));
int brightness = block.getMixedBrightnessForBlock(world, x, y, z);
tessellator.setBrightness(brightness);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
float rotation = 0;
int metaOrig = world.getBlockMetadata(x, y, z);
int meta = metaOrig % 4;
switch(meta) {
default: rotation = 0.5F * (float) Math.PI; break;
case 1: break;
case 2: rotation = 1.5F * (float) Math.PI; break;
case 3: rotation = (float) Math.PI; break;
}
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, rotation, true);
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return BlockDecoToaster.renderID;
}
}

View File

@ -131,7 +131,7 @@ public class ObjUtil {
// The shoddy way of rendering a tringulated model with a quad
// tessellator
if(i % 3 == 2)
if(f.vertices.length == 3 && i % 3 == 2)
tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16D), icon.getInterpolatedV(t.v * 16D));
}
}

View File

@ -3851,6 +3851,8 @@ tile.crystal_virus.name=Dunkler Kristall
tile.deco_aluminium.name=Aluminium-Dekoblock
tile.deco_asbestos.name=Asbestdach
tile.deco_beryllium.name=Beryllium-Dekoblock
tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL
tile.deco_crt.name=Alter Röhrenbildschirm
tile.deco_emitter.name=Deko-Lichtemitter
tile.deco_lead.name=Blei-Dekoblock
tile.deco_rbmk.name=RBMK-Dekoblock
@ -3882,6 +3884,7 @@ tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand
tile.deco_pipe_rim_marked.name=Gasrohr mit Rand
tile.deco_steel.name=Stahl-Dekoblock
tile.deco_titanium.name=Titan-Dekoblock
tile.deco_toaster.name=Kaputter Toaster
tile.deco_tungsten.name=Wolfram-Dekoblock
tile.decon.name=Spieler-Dekontaminierer
tile.depth_brick.name=Tiefenziegel

View File

@ -4848,6 +4848,7 @@ tile.deco_aluminium.name=Aluminium Deco Block
tile.deco_asbestos.name=Asbestos Roof
tile.deco_beryllium.name=Beryllium Deco Block
tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL
tile.deco_crt.name=Old CRT Screen
tile.deco_emitter.name=Deco Light Emitter
tile.deco_lead.name=Lead Deco Block
tile.deco_rbmk.name=RBMK Deco Block
@ -4879,6 +4880,7 @@ tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed)
tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed)
tile.deco_steel.name=Steel Deco Block
tile.deco_titanium.name=Titanium Deco Block
tile.deco_toaster.name=Broken Toaster
tile.deco_tungsten.name=Tungsten Deco Block
tile.decon.name=Player Decontaminator
tile.depth_brick.name=Depth Bricks

View File

@ -0,0 +1,126 @@
# Blender v2.79 (sub 0) OBJ File: 'crt.blend'
# www.blender.org
o Screen
v 0.437500 0.875000 -0.375000
v 0.437500 0.875000 0.375000
v 0.437500 0.125000 -0.375000
v 0.437500 0.125000 0.375000
vt 0.437500 0.437500
vt 0.062500 0.062500
vt 0.437500 0.062500
vt 0.062500 0.437500
vn 1.0000 0.0000 0.0000
s off
f 1/1/1 4/2/1 3/3/1
f 1/1/1 2/4/1 4/2/1
o Monitor
v 0.000000 1.000000 -0.500000
v 0.000000 1.000000 0.500000
v 0.000000 0.000000 -0.500000
v 0.000000 0.000000 0.500000
v 0.500000 0.000000 0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 1.000000 0.500000
v 0.500000 1.000000 -0.500000
v 0.500000 0.125000 0.375000
v 0.500000 0.125000 -0.375000
v 0.500000 0.875000 0.375000
v 0.500000 0.875000 -0.375000
v 0.437500 0.125000 0.375000
v 0.437500 0.125000 -0.375000
v 0.437500 0.875000 0.375000
v 0.437500 0.875000 -0.375000
v -0.500000 0.250000 0.250000
v -0.500000 0.250000 -0.250000
v -0.500000 0.750000 0.250000
v -0.500000 0.750000 -0.250000
vt 1.000000 0.000000
vt 0.500000 0.250000
vt 0.500000 0.000000
vt 0.031250 0.062500
vt 0.062500 0.437500
vt 0.031250 0.437500
vt 0.500000 0.500000
vt 0.437500 0.062500
vt 0.500000 0.000000
vt 0.062500 0.062500
vt 0.000000 0.000000
vt 0.062500 0.437500
vt 0.000000 0.500000
vt 0.437500 0.437500
vt 0.062500 0.468750
vt 0.437500 0.437500
vt 0.437500 0.468750
vt 0.468750 0.437500
vt 0.437500 0.062500
vt 0.468750 0.062500
vt 0.437500 0.031250
vt 0.062500 0.062500
vt 0.062500 0.031250
vt 1.000000 0.000000
vt 0.500000 0.250000
vt 1.000000 0.000000
vt 0.500000 0.250000
vt 0.500000 -0.000000
vt 1.000000 -0.000000
vt 0.500000 0.250000
vt 0.500000 0.000000
vt 0.625000 0.750000
vt 0.875000 0.500000
vt 0.875000 0.750000
vt 1.000000 0.250000
vt 0.625000 0.500000
vt 1.000000 0.250000
vt 0.625000 0.500000
vt 1.000000 0.250000
vt 0.625000 0.500000
vt 1.000000 0.250000
vt 0.625000 0.500000
vt 0.875000 0.500000
vt 0.875000 0.500000
vt 0.875000 0.500000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -0.4472 0.0000 -0.8944
vn -0.4472 -0.8944 0.0000
vn -0.4472 0.0000 0.8944
vn -0.4472 0.8944 0.0000
s off
f 10/5/2 5/6/2 12/7/2
f 13/8/2 19/9/2 15/10/2
f 12/11/3 14/12/3 10/13/3
f 10/13/3 13/14/3 9/15/3
f 9/15/3 15/16/3 11/17/3
f 11/17/3 16/18/3 12/11/3
f 15/19/4 20/20/4 16/21/4
f 16/22/5 18/23/5 14/24/5
f 14/25/6 17/26/6 13/27/6
f 9/28/4 7/29/4 10/13/4
f 11/30/5 8/31/5 9/32/5
f 12/33/6 6/34/6 11/35/6
f 21/36/7 24/37/7 22/38/7
f 7/39/8 24/40/8 5/6/8
f 8/41/9 22/42/9 7/29/9
f 6/43/10 21/44/10 8/31/10
f 5/45/11 23/46/11 6/34/11
f 10/5/2 7/39/2 5/6/2
f 13/8/2 17/26/2 19/9/2
f 12/11/3 16/18/3 14/12/3
f 10/13/3 14/12/3 13/14/3
f 9/15/3 13/14/3 15/16/3
f 11/17/3 15/16/3 16/18/3
f 15/19/4 19/9/4 20/20/4
f 16/22/5 20/20/5 18/23/5
f 14/25/6 18/23/6 17/26/6
f 9/28/4 8/41/4 7/29/4
f 11/30/5 6/43/5 8/31/5
f 12/33/6 5/45/6 6/34/6
f 21/36/7 23/46/7 24/37/7
f 7/39/8 22/47/8 24/40/8
f 8/41/9 21/48/9 22/42/9
f 6/43/10 23/49/10 21/44/10
f 5/45/11 24/37/11 23/46/11

View File

@ -0,0 +1,186 @@
# Blender v2.79 (sub 0) OBJ File: 'toaster.blend'
# www.blender.org
o Plane
v 0.093750 0.312500 -0.125000
v 0.031250 0.312500 -0.125000
v 0.093750 0.312500 0.125000
v 0.031250 0.312500 0.125000
v -0.125000 0.000000 0.250000
v 0.125000 0.000000 0.250000
v -0.125000 0.000000 -0.250000
v 0.125000 0.000000 -0.250000
v -0.125000 0.250000 0.250000
v 0.125000 0.250000 0.250000
v -0.125000 0.250000 -0.250000
v 0.125000 0.250000 -0.250000
v -0.125000 0.312500 0.187500
v 0.125000 0.312500 0.187500
v -0.125000 0.312500 -0.187500
v 0.125000 0.312500 -0.187500
v -0.031250 0.312500 -0.125000
v -0.093750 0.312500 -0.125000
v -0.031250 0.312500 0.125000
v -0.093750 0.312500 0.125000
v 0.093750 0.062500 -0.125000
v 0.031250 0.062500 -0.125000
v 0.093750 0.062500 0.125000
v 0.031250 0.062500 0.125000
v -0.031250 0.062500 0.125000
v -0.031250 0.062500 -0.125000
v -0.093750 0.062500 -0.125000
v -0.093750 0.062500 0.125000
v -0.093750 0.156250 -0.250000
v 0.093750 0.156250 -0.250000
v -0.093750 0.218750 -0.250000
v 0.093750 0.218750 -0.250000
v 0.093750 0.156250 -0.312500
v -0.093750 0.156250 -0.312500
v 0.093750 0.218750 -0.312500
v -0.093750 0.218750 -0.312500
vt 0.750000 0.812500
vt 0.812500 0.562500
vt 0.812500 0.812500
vt 0.500000 0.000000
vt 0.000000 0.250000
vt 0.000000 -0.000000
vt 0.500000 0.812500
vt 0.437500 0.562500
vt 0.500000 0.562500
vt 0.750000 0.812500
vt 0.812500 0.562500
vt 0.812500 0.812500
vt 0.500000 0.250000
vt 0.062500 0.562500
vt 0.750000 0.000000
vt 0.500000 0.250000
vt 0.500000 0.000000
vt 1.000000 0.000000
vt 0.750000 0.250000
vt 0.750000 0.000000
vt 0.375000 0.718750
vt 0.125000 0.656250
vt 0.375000 0.656250
vt -0.000000 0.562500
vt 0.062500 0.812500
vt -0.000000 0.812500
vt 0.125000 0.593750
vt 0.375000 0.593750
vt 0.125000 0.781250
vt 0.437500 0.812500
vt 0.500000 0.250000
vt 0.062500 0.562500
vt -0.000000 0.250000
vt 0.375000 0.781250
vt 0.500000 0.500000
vt 0.750000 0.562500
vt 0.500000 0.562500
vt 0.500000 0.500000
vt 0.750000 0.562500
vt 0.500000 0.562500
vt 0.750000 0.812500
vt 0.812500 0.562500
vt 0.812500 0.812500
vt 0.500000 0.812500
vt 0.750000 0.812500
vt 0.500000 0.812500
vt 0.500000 0.812500
vt 0.750000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.812500
vt 0.500000 0.812500
vt 0.750000 0.562500
vt 0.750000 0.375000
vt 0.562500 0.312500
vt 0.750000 0.312500
vt 0.812500 0.375000
vt 0.812500 0.312500
vt 0.750000 0.250000
vt 0.562500 0.250000
vt 0.500000 0.312500
vt 0.562500 0.375000
vt 0.500000 0.375000
vt 0.562500 0.437500
vt 0.750000 0.437500
vt 0.500000 0.500000
vt 0.000000 0.500000
vt 0.750000 0.250000
vt 1.000000 0.250000
vt 0.125000 0.718750
vt 0.500000 0.500000
vt 0.437500 0.562500
vt -0.000000 0.500000
vt 0.750000 0.500000
vt 0.750000 0.500000
vt 0.500000 0.562500
vt 0.500000 0.562500
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 0.7071
vn -1.0000 0.0000 0.0000
s off
f 3/1/1 24/2/1 4/3/1
f 7/4/2 6/5/2 5/6/2
f 11/7/3 16/8/3 12/9/3
f 19/10/1 28/11/1 20/12/1
f 8/13/4 14/14/4 6/5/4
f 7/15/1 12/16/1 8/17/1
f 6/18/5 9/19/5 5/20/5
f 17/21/6 4/22/6 2/23/6
f 10/24/7 13/25/7 9/26/7
f 3/27/6 16/8/6 1/28/6
f 20/29/6 15/30/6 13/25/6
f 5/31/8 15/32/8 7/33/8
f 15/30/6 18/34/6 17/21/6
f 13/25/6 14/14/6 4/22/6
f 23/35/6 22/36/6 24/37/6
f 25/38/6 27/39/6 28/40/6
f 2/41/5 21/42/5 1/43/5
f 20/44/4 27/39/4 18/45/4
f 4/46/4 22/36/4 2/41/4
f 1/47/8 23/48/8 3/1/8
f 18/45/5 26/49/5 17/50/5
f 17/51/8 25/52/8 19/10/8
f 36/53/1 33/54/1 34/55/1
f 31/56/8 34/55/8 29/57/8
f 29/58/2 33/54/2 30/59/2
f 30/60/4 35/61/4 32/62/4
f 32/63/6 36/53/6 31/64/6
f 3/1/1 23/48/1 24/2/1
f 7/4/2 8/13/2 6/5/2
f 11/7/3 15/30/3 16/8/3
f 19/10/1 25/52/1 28/11/1
f 8/13/4 12/65/4 16/8/4
f 16/8/4 14/14/4 8/13/4
f 14/14/4 10/66/4 6/5/4
f 7/15/1 11/67/1 12/16/1
f 6/18/5 10/68/5 9/19/5
f 17/21/6 19/69/6 4/22/6
f 10/24/7 14/14/7 13/25/7
f 3/27/6 14/14/6 16/8/6
f 20/29/6 18/34/6 15/30/6
f 5/31/8 9/70/8 13/71/8
f 13/71/8 15/32/8 5/31/8
f 15/32/8 11/72/8 7/33/8
f 17/21/6 2/23/6 15/30/6
f 2/23/6 1/28/6 16/8/6
f 15/30/6 2/23/6 16/8/6
f 3/27/6 4/22/6 14/14/6
f 4/22/6 19/69/6 13/25/6
f 19/69/6 20/29/6 13/25/6
f 23/35/6 21/73/6 22/36/6
f 25/38/6 26/74/6 27/39/6
f 2/41/5 22/36/5 21/42/5
f 20/44/4 28/40/4 27/39/4
f 4/46/4 24/37/4 22/36/4
f 1/47/8 21/75/8 23/48/8
f 18/45/5 27/39/5 26/49/5
f 17/51/8 26/76/8 25/52/8
f 36/53/1 35/61/1 33/54/1
f 31/56/8 36/53/8 34/55/8
f 29/58/2 34/55/2 33/54/2
f 30/60/4 33/54/4 35/61/4
f 32/63/6 35/61/6 36/53/6

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 10
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B