aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-08-06 12:54:28 +0900
committersyeyoung <cyong06@naver.com>2021-08-06 12:54:28 +0900
commit0eb7119eb1fab1ac0c7ea96955aa23889a4f3b2e (patch)
treee5173b5b5fff5be3258b347d79dc60c076f5bf96 /src
parentb47ac84df55dd594105f436eb53c49882364e82e (diff)
downloadSkyblock-Dungeons-Guide-0eb7119eb1fab1ac0c7ea96955aa23889a4f3b2e.tar.gz
Skyblock-Dungeons-Guide-0eb7119eb1fab1ac0c7ea96955aa23889a4f3b2e.tar.bz2
Skyblock-Dungeons-Guide-0eb7119eb1fab1ac0c7ea96955aa23889a4f3b2e.zip
- Restore Penguins, with much better 3d models
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/eventlistener/FeatureListener.java24
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java118
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/listener/TextureStichListener.java26
-rw-r--r--src/main/resources/assets/dg/models/penguin.mtl4
-rw-r--r--src/main/resources/assets/dg/models/penguin.obj1685
-rw-r--r--src/main/resources/assets/dg/penguin.pngbin51869 -> 0 bytes
-rw-r--r--src/main/resources/assets/dg/textures/penguin.pngbin0 -> 207 bytes
8 files changed, 1828 insertions, 30 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
index 0a744e11..48c392e0 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
@@ -175,6 +175,7 @@ public class DungeonsGuide implements DGInterface, CloseListener {
try {
List<IResourcePack> resourcePackList = ReflectionHelper.getPrivateValue(Minecraft.class, Minecraft.getMinecraft(),"defaultResourcePacks", "aA", "field_110449_ao");
resourcePackList.add(new DGTexturePack(authenticator));
+ Minecraft.getMinecraft().refreshResources();
} catch (Throwable t){
t.printStackTrace();
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/FeatureListener.java b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/FeatureListener.java
index 96683f5b..ab7eae21 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/FeatureListener.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/FeatureListener.java
@@ -68,6 +68,30 @@ public class FeatureListener {
}
}
@SubscribeEvent
+ public void onStomp(TextureStitchEvent.Pre textureStitchEvent) {
+ try {
+ for (AbstractFeature abstractFeature : FeatureRegistry.getFeatureList()) {
+ if (abstractFeature instanceof TextureStichListener) {
+ ((TextureStichListener) abstractFeature).onTextureStitch(textureStitchEvent);
+ }
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+ @SubscribeEvent
+ public void onStomp(TextureStitchEvent.Post textureStitchEvent) {
+ try {
+ for (AbstractFeature abstractFeature : FeatureRegistry.getFeatureList()) {
+ if (abstractFeature instanceof TextureStichListener) {
+ ((TextureStichListener) abstractFeature).onTextureStitch(textureStitchEvent);
+ }
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+ @SubscribeEvent
public void onWindowUpdate(WindowUpdateEvent windowUpdateEvent) {
try {
SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java
index ab3a7a83..076fc0ce 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java
@@ -18,59 +18,103 @@
package kr.syeyoung.dungeonsguide.features.impl.etc;
+import com.google.common.collect.ImmutableMap;
import kr.syeyoung.dungeonsguide.DungeonsGuide;
import kr.syeyoung.dungeonsguide.SkyblockStatus;
import kr.syeyoung.dungeonsguide.features.SimpleFeature;
import kr.syeyoung.dungeonsguide.features.listener.PlayerRenderListener;
+import kr.syeyoung.dungeonsguide.features.listener.TextureStichListener;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.gui.Gui;
+import net.minecraft.client.renderer.EntityRenderer;
import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.WorldRenderer;
+import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.client.renderer.texture.TextureUtil;
+import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
+import net.minecraft.client.resources.model.IBakedModel;
+import net.minecraft.client.resources.model.ModelManager;
+import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemBlock;
-import net.minecraft.item.ItemStack;
+import net.minecraft.item.*;
+import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.client.event.RenderPlayerEvent;
+import net.minecraftforge.client.event.TextureStitchEvent;
+import net.minecraftforge.client.model.IModel;
+import net.minecraftforge.client.model.ModelLoader;
+import net.minecraftforge.client.model.ModelLoaderRegistry;
+import net.minecraftforge.client.model.obj.OBJLoader;
+import net.minecraftforge.client.model.obj.OBJModel;
+import net.minecraftforge.fml.relauncher.ReflectionHelper;
+import java.io.IOException;
+import java.util.List;
-public class FeaturePenguins extends SimpleFeature implements PlayerRenderListener {
+
+public class FeaturePenguins extends SimpleFeature implements PlayerRenderListener, TextureStichListener {
public FeaturePenguins() {
super("Misc", "Penguins", "Awwww", "etc.penguin", false);
+ OBJLoader.instance.addDomain("dungeonsguide");
+
+ }
+ @Override
+ public void onTextureStitch(TextureStitchEvent event) {
+ System.out.println("STICH!");
+ if (event instanceof TextureStitchEvent.Pre) {
+ objModel = null;
+ ResourceLocation modelResourceLocation = new ResourceLocation("dungeonsguide:models/penguin.obj");
+ try {
+ objModel = (OBJModel) OBJLoader.instance.loadModel(modelResourceLocation);
+ objModel = (OBJModel) objModel.process(new ImmutableMap.Builder<String, String>().put("flip-v", "true").build());
+ for (String obj : objModel.getMatLib().getMaterialNames()) {
+ ResourceLocation resourceLocation = objModel.getMatLib().getMaterial(obj).getTexture().getTextureLocation();
+ event.map.registerSprite(resourceLocation);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (objModel != null && event instanceof TextureStitchEvent.Post) {
+ model = objModel.bake(objModel.getDefaultState(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter());
+ }
}
+ private OBJModel objModel;
private final SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
- private final ResourceLocation penguin = new ResourceLocation("dungeonsguide:penguin.png");
+ private IBakedModel model;
@Override
public void onEntityRenderPre(RenderPlayerEvent.Pre renderPlayerEvent) {
+
if (!isEnabled()) return;
+ if (renderPlayerEvent.entityPlayer.isInvisible()) return;
renderPlayerEvent.setCanceled(true);
GlStateManager.pushMatrix();
+ GlStateManager.color(1,1,1,1);
GlStateManager.translate(renderPlayerEvent.x, renderPlayerEvent.y, renderPlayerEvent.z);
-
- GlStateManager.rotate(-renderPlayerEvent.renderer.getRenderManager().playerViewY, 0.0f, 1.0f, 0.0f);
-
- GlStateManager.translate(0.5,2,0);
- GlStateManager.scale(-1,-1,-1);
-
if (renderPlayerEvent.entityPlayer.isSneaking())
{
- GlStateManager.translate(0.0F, 0.203125F, 0.0F);
+ GlStateManager.translate(0.0F, -0.203125F, 0.0F);
}
+ float f1 = renderPlayerEvent.entityPlayer.prevRotationYawHead + (renderPlayerEvent.entityPlayer.rotationYawHead - renderPlayerEvent.entityPlayer.prevRotationYawHead) * renderPlayerEvent.partialRenderTick;
+ GlStateManager.rotate(f1+180,0,-1,0);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
- Minecraft.getMinecraft().getTextureManager().bindTexture(penguin);
- GlStateManager.disableLighting();
- GlStateManager.color(1f, 1f, 1f, 1f);
- Gui.drawModalRectWithCustomSizedTexture(0,0,0,0,1,2,1,2);
- GlStateManager.bindTexture(0);
- GlStateManager.enableLighting();
+ Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModelBrightnessColor(
+ model, 1,1,1,1
+ );
GlStateManager.popMatrix();
+
EntityPlayer entitylivingbaseIn = renderPlayerEvent.entityPlayer;
{
ItemStack itemstack = entitylivingbaseIn.getHeldItem();
@@ -79,9 +123,13 @@ public class FeaturePenguins extends SimpleFeature implements PlayerRenderListen
{
GlStateManager.pushMatrix();
GlStateManager.translate(renderPlayerEvent.x, renderPlayerEvent.y, renderPlayerEvent.z);
- GlStateManager.rotate(-renderPlayerEvent.renderer.getRenderManager().playerViewY, 0.0f, 1.0f, 0.0f);
- GlStateManager.translate(-0.3,1.8,0.1);
- GlStateManager.scale(0.8,0.8,0.8);
+ if (renderPlayerEvent.entityPlayer.isSneaking())
+ {
+ GlStateManager.translate(0.0F, -0.203125F, 0.0F);
+ }
+ GlStateManager.rotate(f1+180, 0.0f, -1.0f, 0.0f);
+ GlStateManager.translate(0,1.30 ,-0.5);
+
if (entitylivingbaseIn.fishEntity != null)
@@ -92,20 +140,30 @@ public class FeaturePenguins extends SimpleFeature implements PlayerRenderListen
Item item = itemstack.getItem();
Minecraft minecraft = Minecraft.getMinecraft();
- if (item instanceof ItemBlock && Block.getBlockFromItem(item).getRenderType() == 2)
- {
- GlStateManager.translate(0,0,0.2);
+ GlStateManager.rotate(180, 0.0f, 0.0f, 1.0f);
+ if (item.isFull3D()) {
+ GlStateManager.translate(0.05,0,0);
+ GlStateManager.rotate(90, 0.0f, 0.0f, 1.0f);
+ GlStateManager.rotate(-45, 1.0f, 0.0f, 0.0f);
+ } else if (item instanceof ItemBow) {
+ GlStateManager.translate(0,0.1, -0);
+ GlStateManager.rotate(90, 0.0f, 1.0f, 0.0f);
+ GlStateManager.rotate(-90, 0.0f, 0.0f, 1.0f);
+ } else if (item instanceof ItemBlock && Block.getBlockFromItem(item).getRenderType() == 2) {
+ GlStateManager.translate(0,-0.20,0.1);
GlStateManager.translate(0.0F, 0.1875F, -0.3125F);
- GlStateManager.rotate(20.0F, 1.0F, 0.0F, 0.0F);
+ GlStateManager.rotate(-25.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
- float f1 = 0.375F;
+ f1 = 0.375F;
GlStateManager.scale(-f1, -f1, f1);
+ } else if (item instanceof ItemBlock) {
+ GlStateManager.translate(0.0F, 0.05, 0.1);
+ GlStateManager.rotate(-25.0F, 1.0F, 0.0F, 0.0F);
+ } else {
+ GlStateManager.translate(0,-0.1, 0.1);
}
- if (entitylivingbaseIn.isSneaking())
- {
- GlStateManager.translate(0.0F, 0.203125F, 0.0F);
- }
+ GlStateManager.scale(0.8,0.8,0.8);
minecraft.getItemRenderer().renderItem(entitylivingbaseIn, itemstack, ItemCameraTransforms.TransformType.THIRD_PERSON);
GlStateManager.popMatrix();
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/listener/TextureStichListener.java b/src/main/java/kr/syeyoung/dungeonsguide/features/listener/TextureStichListener.java
new file mode 100644
index 00000000..77600d1e
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/listener/TextureStichListener.java
@@ -0,0 +1,26 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2021 cyoung06
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package kr.syeyoung.dungeonsguide.features.listener;
+
+import net.minecraftforge.client.event.GuiScreenEvent;
+import net.minecraftforge.client.event.TextureStitchEvent;
+
+public interface TextureStichListener {
+ void onTextureStitch(TextureStitchEvent event);
+}
diff --git a/src/main/resources/assets/dg/models/penguin.mtl b/src/main/resources/assets/dg/models/penguin.mtl
new file mode 100644
index 00000000..1fc14a2f
--- /dev/null
+++ b/src/main/resources/assets/dg/models/penguin.mtl
@@ -0,0 +1,4 @@
+# Made in Blockbench 3.8.4
+newmtl m_2
+map_Kd dungeonsguide:penguin
+newmtl none \ No newline at end of file
diff --git a/src/main/resources/assets/dg/models/penguin.obj b/src/main/resources/assets/dg/models/penguin.obj
new file mode 100644
index 00000000..29fe4680
--- /dev/null
+++ b/src/main/resources/assets/dg/models/penguin.obj
@@ -0,0 +1,1685 @@
+# Made in Blockbench 3.8.4
+mtllib penguin.mtl
+o cube
+v -0.09375 0.17922794117647123 -0.04411764705882426
+v -0.09375 0.17922794117647123 -0.41911764705882437
+v -0.09375 -0.008272058823528772 -0.04411764705882426
+v -0.09375 -0.008272058823528772 -0.41911764705882437
+v -0.28125 0.17922794117647123 -0.41911764705882437
+v -0.28125 0.17922794117647123 -0.04411764705882426
+v -0.28125 -0.008272058823528772 -0.41911764705882437
+v -0.28125 -0.008272058823528772 -0.04411764705882426
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vt 0.875 0.0625
+vt 0.875 0
+vt 1 0.0625
+vt 0.875 0
+vt 1 0
+vt 1 0.0625
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 1/1/1 3/2/2 2/3/3
+f 3/4/4 4/5/5 2/6/6
+usemtl m_2
+f 5/7/7 7/8/8 6/9/9
+f 7/10/10 8/11/11 6/12/12
+usemtl m_2
+f 5/13/13 6/14/14 2/15/15
+f 6/16/16 1/17/17 2/18/18
+usemtl m_2
+f 8/19/19 7/20/20 3/21/21
+f 7/22/22 4/23/23 3/24/24
+usemtl m_2
+f 6/25/25 8/26/26 1/27/27
+f 8/28/28 3/29/29 1/30/30
+usemtl m_2
+f 2/31/31 4/32/32 5/33/33
+f 4/34/34 7/35/35 5/36/36
+o cube
+v 0.28125 0.17922794117647123 -0.04411764705882426
+v 0.28125 0.17922794117647123 -0.41911764705882437
+v 0.28125 -0.008272058823528772 -0.04411764705882426
+v 0.28125 -0.008272058823528772 -0.41911764705882437
+v 0.09375 0.17922794117647123 -0.41911764705882437
+v 0.09375 0.17922794117647123 -0.04411764705882426
+v 0.09375 -0.008272058823528772 -0.41911764705882437
+v 0.09375 -0.008272058823528772 -0.04411764705882426
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vt 0.9375 0.0625
+vt 0.9375 0
+vt 1 0.0625
+vt 0.9375 0
+vt 1 0
+vt 1 0.0625
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 9/37/37 11/38/38 10/39/39
+f 11/40/40 12/41/41 10/42/42
+usemtl m_2
+f 13/43/43 15/44/44 14/45/45
+f 15/46/46 16/47/47 14/48/48
+usemtl m_2
+f 13/49/49 14/50/50 10/51/51
+f 14/52/52 9/53/53 10/54/54
+usemtl m_2
+f 16/55/55 15/56/56 11/57/57
+f 15/58/58 12/59/59 11/60/60
+usemtl m_2
+f 14/61/61 16/62/62 9/63/63
+f 16/64/64 11/65/65 9/66/66
+usemtl m_2
+f 10/67/67 12/68/68 13/69/69
+f 12/70/70 15/71/71 13/72/72
+o cube
+v 0.09375 0.17922794117647123 0.8933823529411757
+v 0.09375 0.17922794117647123 -0.04411764705882426
+v 0.09375 -0.008272058823528772 0.8933823529411757
+v 0.09375 -0.008272058823528772 -0.04411764705882426
+v -0.09375 0.17922794117647123 -0.04411764705882426
+v -0.09375 0.17922794117647123 0.8933823529411757
+v -0.09375 -0.008272058823528772 -0.04411764705882426
+v -0.09375 -0.008272058823528772 0.8933823529411757
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vt 0 0.5625
+vt 0 0.5
+vt 0.3125 0.5625
+vt 0 0.5
+vt 0.3125 0.5
+vt 0.3125 0.5625
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 17/73/73 19/74/74 18/75/75
+f 19/76/76 20/77/77 18/78/78
+usemtl m_2
+f 21/79/79 23/80/80 22/81/81
+f 23/82/82 24/83/83 22/84/84
+usemtl m_2
+f 21/85/85 22/86/86 18/87/87
+f 22/88/88 17/89/89 18/90/90
+usemtl m_2
+f 24/91/91 23/92/92 19/93/93
+f 23/94/94 20/95/95 19/96/96
+usemtl m_2
+f 22/97/97 24/98/98 17/99/99
+f 24/100/100 19/101/101 17/102/102
+usemtl m_2
+f 18/103/103 20/104/104 21/105/105
+f 20/106/106 23/107/107 21/108/108
+o cube
+v 0.09375 0.3667279411764711 0.5183823529411757
+v 0.09375 0.3667279411764711 -0.04411764705882426
+v 0.09375 0.17922794117647123 0.5183823529411757
+v 0.09375 0.17922794117647123 -0.04411764705882426
+v -0.09375 0.3667279411764711 -0.04411764705882426
+v -0.09375 0.3667279411764711 0.5183823529411757
+v -0.09375 0.17922794117647123 -0.04411764705882426
+v -0.09375 0.17922794117647123 0.5183823529411757
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vt 0.25 0.75
+vt 0.25 0.5625
+vt 0.3125 0.75
+vt 0.25 0.5625
+vt 0.3125 0.5625
+vt 0.3125 0.75
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 25/109/109 27/110/110 26/111/111
+f 27/112/112 28/113/113 26/114/114
+usemtl m_2
+f 29/115/115 31/116/116 30/117/117
+f 31/118/118 32/119/119 30/120/120
+usemtl m_2
+f 29/121/121 30/122/122 26/123/123
+f 30/124/124 25/125/125 26/126/126
+usemtl m_2
+f 32/127/127 31/128/128 27/129/129
+f 31/130/130 28/131/131 27/132/132
+usemtl m_2
+f 30/133/133 32/134/134 25/135/135
+f 32/136/136 27/137/137 25/138/138
+usemtl m_2
+f 26/139/139 28/140/140 29/141/141
+f 28/142/142 31/143/143 29/144/144
+o cube
+v 0.28125 1.679227941176471 0.33088235294117574
+v 0.28125 1.679227941176471 0.14338235294117574
+v 0.28125 0.17922794117647123 0.33088235294117574
+v 0.28125 0.17922794117647123 0.14338235294117574
+v -0.28125 1.679227941176471 0.14338235294117574
+v -0.28125 1.679227941176471 0.33088235294117574
+v -0.28125 0.17922794117647123 0.14338235294117574
+v -0.28125 0.17922794117647123 0.33088235294117574
+vt 0.8125 0.875
+vt 0.8125 0.375
+vt 0.875 0.875
+vt 0.8125 0.375
+vt 0.875 0.375
+vt 0.875 0.875
+vt 0.8125 0.875
+vt 0.8125 0.375
+vt 0.875 0.875
+vt 0.8125 0.375
+vt 0.875 0.375
+vt 0.875 0.875
+vt 0.8125 0.875
+vt 0.8125 0.8125
+vt 1 0.875
+vt 0.8125 0.8125
+vt 1 0.8125
+vt 1 0.875
+vt 0 0.625
+vt 0 0.5625
+vt 0.1875 0.625
+vt 0 0.5625
+vt 0.1875 0.5625
+vt 0.1875 0.625
+vt 0.4375 0.6875
+vt 0.4375 0.1875
+vt 0.625 0.6875
+vt 0.4375 0.1875
+vt 0.625 0.1875
+vt 0.625 0.6875
+vt 0 1
+vt 0 0.5
+vt 0.1875 1
+vt 0 0.5
+vt 0.1875 0.5
+vt 0.1875 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 33/145/145 35/146/146 34/147/147
+f 35/148/148 36/149/149 34/150/150
+usemtl m_2
+f 37/151/151 39/152/152 38/153/153
+f 39/154/154 40/155/155 38/156/156
+usemtl m_2
+f 37/157/157 38/158/158 34/159/159
+f 38/160/160 33/161/161 34/162/162
+usemtl m_2
+f 40/163/163 39/164/164 35/165/165
+f 39/166/166 36/167/167 35/168/168
+usemtl m_2
+f 38/169/169 40/170/170 33/171/171
+f 40/172/172 35/173/173 33/174/174
+usemtl m_2
+f 34/175/175 36/176/176 37/177/177
+f 36/178/178 39/179/179 37/180/180
+o cube
+v 0.28125 1.3042279411764715 0.14338235294117574
+v 0.28125 1.3042279411764715 -0.04411764705882426
+v 0.28125 0.17922794117647123 0.14338235294117574
+v 0.28125 0.17922794117647123 -0.04411764705882426
+v -0.28125 1.3042279411764715 -0.04411764705882426
+v -0.28125 1.3042279411764715 0.14338235294117574
+v -0.28125 0.17922794117647123 -0.04411764705882426
+v -0.28125 0.17922794117647123 0.14338235294117574
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vt 0.1875 1
+vt 0.1875 0.625
+vt 0.25 1
+vt 0.1875 0.625
+vt 0.25 0.625
+vt 0.25 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 41/181/181 43/182/182 42/183/183
+f 43/184/184 44/185/185 42/186/186
+usemtl m_2
+f 45/187/187 47/188/188 46/189/189
+f 47/190/190 48/191/191 46/192/192
+usemtl m_2
+f 45/193/193 46/194/194 42/195/195
+f 46/196/196 41/197/197 42/198/198
+usemtl m_2
+f 48/199/199 47/200/200 43/201/201
+f 47/202/202 44/203/203 43/204/204
+usemtl m_2
+f 46/205/205 48/206/206 41/207/207
+f 48/208/208 43/209/209 41/210/210
+usemtl m_2
+f 42/211/211 44/212/212 45/213/213
+f 44/214/214 47/215/215 45/216/216
+o cube
+v 0.28125 1.3042279411764715 -0.04411764705882426
+v 0.28125 1.3042279411764715 -0.23161764705882426
+v 0.28125 0.17922794117647123 -0.04411764705882426
+v 0.28125 0.17922794117647123 -0.23161764705882426
+v -0.28125 1.3042279411764715 -0.23161764705882426
+v -0.28125 1.3042279411764715 -0.04411764705882426
+v -0.28125 0.17922794117647123 -0.23161764705882426
+v -0.28125 0.17922794117647123 -0.04411764705882426
+vt 0 1
+vt 0 0.625
+vt 0.0625 1
+vt 0 0.625
+vt 0.0625 0.625
+vt 0.0625 1
+vt 0 1
+vt 0 0.625
+vt 0.0625 1
+vt 0 0.625
+vt 0.0625 0.625
+vt 0.0625 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.625
+vt 0.1875 1
+vt 0 0.625
+vt 0.1875 0.625
+vt 0.1875 1
+vt 0 1
+vt 0 0.625
+vt 0.1875 1
+vt 0 0.625
+vt 0.1875 0.625
+vt 0.1875 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 49/217/217 51/218/218 50/219/219
+f 51/220/220 52/221/221 50/222/222
+usemtl m_2
+f 53/223/223 55/224/224 54/225/225
+f 55/226/226 56/227/227 54/228/228
+usemtl m_2
+f 53/229/229 54/230/230 50/231/231
+f 54/232/232 49/233/233 50/234/234
+usemtl m_2
+f 56/235/235 55/236/236 51/237/237
+f 55/238/238 52/239/239 51/240/240
+usemtl m_2
+f 54/241/241 56/242/242 49/243/243
+f 56/244/244 51/245/245 49/246/246
+usemtl m_2
+f 50/247/247 52/248/248 53/249/249
+f 52/250/250 55/251/251 53/252/252
+o cube
+v 0.28125 1.679227941176471 0.14338235294117574
+v 0.28125 1.679227941176471 -0.23161764705882426
+v 0.28125 1.491727941176471 0.14338235294117574
+v 0.28125 1.491727941176471 -0.23161764705882426
+v -0.28125 1.679227941176471 -0.23161764705882426
+v -0.28125 1.679227941176471 0.14338235294117574
+v -0.28125 1.491727941176471 -0.23161764705882426
+v -0.28125 1.491727941176471 0.14338235294117574
+vt 0.8125 1
+vt 0.8125 0.9375
+vt 1 1
+vt 0.8125 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.875 1
+vt 0.875 0.9375
+vt 1 1
+vt 0.875 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.8125 1
+vt 0.8125 0.875
+vt 1 1
+vt 0.8125 0.875
+vt 1 0.875
+vt 1 1
+vt 0 1
+vt 0 0.875
+vt 0.1875 1
+vt 0 0.875
+vt 0.1875 0.875
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0.8125 1
+vt 0.8125 0.9375
+vt 1 1
+vt 0.8125 0.9375
+vt 1 0.9375
+vt 1 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 57/253/253 59/254/254 58/255/255
+f 59/256/256 60/257/257 58/258/258
+usemtl m_2
+f 61/259/259 63/260/260 62/261/261
+f 63/262/262 64/263/263 62/264/264
+usemtl m_2
+f 61/265/265 62/266/266 58/267/267
+f 62/268/268 57/269/269 58/270/270
+usemtl m_2
+f 64/271/271 63/272/272 59/273/273
+f 63/274/274 60/275/275 59/276/276
+usemtl m_2
+f 62/277/277 64/278/278 57/279/279
+f 64/280/280 59/281/281 57/282/282
+usemtl m_2
+f 58/283/283 60/284/284 61/285/285
+f 60/286/286 63/287/287 61/288/288
+o cube
+v 0.28125 1.679227941176471 0.5183823529411757
+v 0.28125 1.679227941176471 0.33088235294117574
+v 0.28125 1.491727941176471 0.5183823529411757
+v 0.28125 1.491727941176471 0.33088235294117574
+v 0.09375 1.679227941176471 0.33088235294117574
+v 0.09375 1.679227941176471 0.5183823529411757
+v 0.09375 1.491727941176471 0.33088235294117574
+v 0.09375 1.491727941176471 0.5183823529411757
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 65/289/289 67/290/290 66/291/291
+f 67/292/292 68/293/293 66/294/294
+usemtl m_2
+f 69/295/295 71/296/296 70/297/297
+f 71/298/298 72/299/299 70/300/300
+usemtl m_2
+f 69/301/301 70/302/302 66/303/303
+f 70/304/304 65/305/305 66/306/306
+usemtl m_2
+f 72/307/307 71/308/308 67/309/309
+f 71/310/310 68/311/311 67/312/312
+usemtl m_2
+f 70/313/313 72/314/314 65/315/315
+f 72/316/316 67/317/317 65/318/318
+usemtl m_2
+f 66/319/319 68/320/320 69/321/321
+f 68/322/322 71/323/323 69/324/324
+o cube
+v -0.09375 1.679227941176471 0.5183823529411757
+v -0.09375 1.679227941176471 0.33088235294117574
+v -0.09375 1.491727941176471 0.5183823529411757
+v -0.09375 1.491727941176471 0.33088235294117574
+v -0.28125 1.679227941176471 0.33088235294117574
+v -0.28125 1.679227941176471 0.5183823529411757
+v -0.28125 1.491727941176471 0.33088235294117574
+v -0.28125 1.491727941176471 0.5183823529411757
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vt 0.9375 0.75
+vt 0.9375 0.6875
+vt 1 0.75
+vt 0.9375 0.6875
+vt 1 0.6875
+vt 1 0.75
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 73/325/325 75/326/326 74/327/327
+f 75/328/328 76/329/329 74/330/330
+usemtl m_2
+f 77/331/331 79/332/332 78/333/333
+f 79/334/334 80/335/335 78/336/336
+usemtl m_2
+f 77/337/337 78/338/338 74/339/339
+f 78/340/340 73/341/341 74/342/342
+usemtl m_2
+f 80/343/343 79/344/344 75/345/345
+f 79/346/346 76/347/347 75/348/348
+usemtl m_2
+f 78/349/349 80/350/350 73/351/351
+f 80/352/352 75/353/353 73/354/354
+usemtl m_2
+f 74/355/355 76/356/356 77/357/357
+f 76/358/358 79/359/359 77/360/360
+o cube
+v 0.09375 1.491727941176471 -0.23161764705882426
+v 0.09375 1.491727941176471 -0.41911764705882437
+v 0.09375 1.3042279411764715 -0.23161764705882426
+v 0.09375 1.3042279411764715 -0.41911764705882437
+v -0.09375 1.491727941176471 -0.41911764705882437
+v -0.09375 1.491727941176471 -0.23161764705882426
+v -0.09375 1.3042279411764715 -0.41911764705882437
+v -0.09375 1.3042279411764715 -0.23161764705882426
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vt 0.9375 1
+vt 0.9375 0.9375
+vt 1 1
+vt 0.9375 0.9375
+vt 1 0.9375
+vt 1 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 81/361/361 83/362/362 82/363/363
+f 83/364/364 84/365/365 82/366/366
+usemtl m_2
+f 85/367/367 87/368/368 86/369/369
+f 87/370/370 88/371/371 86/372/372
+usemtl m_2
+f 85/373/373 86/374/374 82/375/375
+f 86/376/376 81/377/377 82/378/378
+usemtl m_2
+f 88/379/379 87/380/380 83/381/381
+f 87/382/382 84/383/383 83/384/384
+usemtl m_2
+f 86/385/385 88/386/386 81/387/387
+f 88/388/388 83/389/389 81/390/390
+usemtl m_2
+f 82/391/391 84/392/392 85/393/393
+f 84/394/394 87/395/395 85/396/396
+o cube
+v 0.09375 1.3979779411764715 -0.41911764705882437
+v 0.09375 1.3979779411764715 -0.6066176470588244
+v 0.09375 1.2104779411764715 -0.41911764705882437
+v 0.09375 1.2104779411764715 -0.6066176470588244
+v -0.09375 1.3979779411764715 -0.6066176470588244
+v -0.09375 1.3979779411764715 -0.41911764705882437
+v -0.09375 1.2104779411764715 -0.6066176470588244
+v -0.09375 1.2104779411764715 -0.41911764705882437
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 89/397/397 91/398/398 90/399/399
+f 91/400/400 92/401/401 90/402/402
+usemtl m_2
+f 93/403/403 95/404/404 94/405/405
+f 95/406/406 96/407/407 94/408/408
+usemtl m_2
+f 93/409/409 94/410/410 90/411/411
+f 94/412/412 89/413/413 90/414/414
+usemtl m_2
+f 96/415/415 95/416/416 91/417/417
+f 95/418/418 92/419/419 91/420/420
+usemtl m_2
+f 94/421/421 96/422/422 89/423/423
+f 96/424/424 91/425/425 89/426/426
+usemtl m_2
+f 90/427/427 92/428/428 93/429/429
+f 92/430/430 95/431/431 93/432/432
+o cube
+v 0.09375 1.3042279411764715 -0.23161764705882426
+v 0.09375 1.3042279411764715 -0.41911764705882437
+v 0.09375 1.2104779411764715 -0.23161764705882426
+v 0.09375 1.2104779411764715 -0.41911764705882437
+v -0.09375 1.3042279411764715 -0.41911764705882437
+v -0.09375 1.3042279411764715 -0.23161764705882426
+v -0.09375 1.2104779411764715 -0.41911764705882437
+v -0.09375 1.2104779411764715 -0.23161764705882426
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vt 0 0.5
+vt 0 0.4375
+vt 0.0625 0.5
+vt 0 0.4375
+vt 0.0625 0.4375
+vt 0.0625 0.5
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 97/433/433 99/434/434 98/435/435
+f 99/436/436 100/437/437 98/438/438
+usemtl m_2
+f 101/439/439 103/440/440 102/441/441
+f 103/442/442 104/443/443 102/444/444
+usemtl m_2
+f 101/445/445 102/446/446 98/447/447
+f 102/448/448 97/449/449 98/450/450
+usemtl m_2
+f 104/451/451 103/452/452 99/453/453
+f 103/454/454 100/455/455 99/456/456
+usemtl m_2
+f 102/457/457 104/458/458 97/459/459
+f 104/460/460 99/461/461 97/462/462
+usemtl m_2
+f 98/463/463 100/464/464 101/465/465
+f 100/466/466 103/467/467 101/468/468
+o cube
+v -0.28125 1.1167279411764715 0.14338235294117574
+v -0.28125 1.1167279411764715 -0.04411764705882426
+v -0.28125 0.3667279411764711 0.14338235294117574
+v -0.28125 0.3667279411764711 -0.04411764705882426
+v -0.46875 1.1167279411764715 -0.04411764705882426
+v -0.46875 1.1167279411764715 0.14338235294117574
+v -0.46875 0.3667279411764711 -0.04411764705882426
+v -0.46875 0.3667279411764711 0.14338235294117574
+vt 0 1
+vt 0 0.75
+vt 0.0625 1
+vt 0 0.75
+vt 0.0625 0.75
+vt 0.0625 1
+vt 0.0625 0.4375
+vt 0.0625 0.1875
+vt 0.125 0.4375
+vt 0.0625 0.1875
+vt 0.125 0.1875
+vt 0.125 0.4375
+vt 0 0.625
+vt 0 0.5625
+vt 0.0625 0.625
+vt 0 0.5625
+vt 0.0625 0.5625
+vt 0.0625 0.625
+vt 0.1875 0.375
+vt 0.1875 0.3125
+vt 0.3125 0.375
+vt 0.1875 0.3125
+vt 0.3125 0.3125
+vt 0.3125 0.375
+vt 0.1875 0.4375
+vt 0.1875 0.1875
+vt 0.3125 0.4375
+vt 0.1875 0.1875
+vt 0.3125 0.1875
+vt 0.3125 0.4375
+vt 0 0.4375
+vt 0 0.1875
+vt 0.125 0.4375
+vt 0 0.1875
+vt 0.125 0.1875
+vt 0.125 0.4375
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 105/469/469 107/470/470 106/471/471
+f 107/472/472 108/473/473 106/474/474
+usemtl m_2
+f 109/475/475 111/476/476 110/477/477
+f 111/478/478 112/479/479 110/480/480
+usemtl m_2
+f 109/481/481 110/482/482 106/483/483
+f 110/484/484 105/485/485 106/486/486
+usemtl m_2
+f 112/487/487 111/488/488 107/489/489
+f 111/490/490 108/491/491 107/492/492
+usemtl m_2
+f 110/493/493 112/494/494 105/495/495
+f 112/496/496 107/497/497 105/498/498
+usemtl m_2
+f 106/499/499 108/500/500 109/501/501
+f 108/502/502 111/503/503 109/504/504
+o cube
+v 0.46875 1.1167279411764715 0.14338235294117574
+v 0.46875 1.1167279411764715 -0.04411764705882426
+v 0.46875 0.3667279411764711 0.14338235294117574
+v 0.46875 0.3667279411764711 -0.04411764705882426
+v 0.28125 1.1167279411764715 -0.04411764705882426
+v 0.28125 1.1167279411764715 0.14338235294117574
+v 0.28125 0.3667279411764711 -0.04411764705882426
+v 0.28125 0.3667279411764711 0.14338235294117574
+vt 0.125 0.4375
+vt 0.125 0.1875
+vt 0.0625 0.4375
+vt 0.125 0.1875
+vt 0.0625 0.1875
+vt 0.0625 0.4375
+vt 0.0625 1
+vt 0.0625 0.75
+vt 0 1
+vt 0.0625 0.75
+vt 0 0.75
+vt 0 1
+vt 0.0625 0.625
+vt 0.0625 0.5625
+vt 0 0.625
+vt 0.0625 0.5625
+vt 0 0.5625
+vt 0 0.625
+vt 0.3125 0.375
+vt 0.3125 0.3125
+vt 0.1875 0.375
+vt 0.3125 0.3125
+vt 0.1875 0.3125
+vt 0.1875 0.375
+vt 0.3125 0.4375
+vt 0.3125 0.1875
+vt 0.1875 0.4375
+vt 0.3125 0.1875
+vt 0.1875 0.1875
+vt 0.1875 0.4375
+vt 0.125 0.4375
+vt 0.125 0.1875
+vt 0 0.4375
+vt 0.125 0.1875
+vt 0 0.1875
+vt 0 0.4375
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 113/505/505 115/506/506 114/507/507
+f 115/508/508 116/509/509 114/510/510
+usemtl m_2
+f 117/511/511 119/512/512 118/513/513
+f 119/514/514 120/515/515 118/516/516
+usemtl m_2
+f 117/517/517 118/518/518 114/519/519
+f 118/520/520 113/521/521 114/522/522
+usemtl m_2
+f 120/523/523 119/524/524 115/525/525
+f 119/526/526 116/527/527 115/528/528
+usemtl m_2
+f 118/529/529 120/530/530 113/531/531
+f 120/532/532 115/533/533 113/534/534
+usemtl m_2
+f 114/535/535 116/536/536 117/537/537
+f 116/538/538 119/539/539 117/540/540
+o cube
+v 0.28125 1.491727941176471 -0.04411764705882426
+v 0.28125 1.491727941176471 -0.23161764705882426
+v 0.28125 1.3042279411764715 -0.04411764705882426
+v 0.28125 1.3042279411764715 -0.23161764705882426
+v -0.28125 1.491727941176471 -0.23161764705882426
+v -0.28125 1.491727941176471 -0.04411764705882426
+v -0.28125 1.3042279411764715 -0.23161764705882426
+v -0.28125 1.3042279411764715 -0.04411764705882426
+vt 0 1
+vt 0 0.9375
+vt 0.0625 1
+vt 0 0.9375
+vt 0.0625 0.9375
+vt 0.0625 1
+vt 0.125 0.6875
+vt 0.125 0.625
+vt 0.1875 0.6875
+vt 0.125 0.625
+vt 0.1875 0.625
+vt 0.1875 0.6875
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 121/541/541 123/542/542 122/543/543
+f 123/544/544 124/545/545 122/546/546
+usemtl m_2
+f 125/547/547 127/548/548 126/549/549
+f 127/550/550 128/551/551 126/552/552
+usemtl m_2
+f 125/553/553 126/554/554 122/555/555
+f 126/556/556 121/557/557 122/558/558
+usemtl m_2
+f 128/559/559 127/560/560 123/561/561
+f 127/562/562 124/563/563 123/564/564
+usemtl m_2
+f 126/565/565 128/566/566 121/567/567
+f 128/568/568 123/569/569 121/570/570
+usemtl m_2
+f 122/571/571 124/572/572 125/573/573
+f 124/574/574 127/575/575 125/576/576
+o cube
+v 0.28125 1.491727941176471 0.14338235294117574
+v 0.28125 1.491727941176471 -0.04411764705882426
+v 0.28125 1.3042279411764715 0.14338235294117574
+v 0.28125 1.3042279411764715 -0.04411764705882426
+v -0.28125 1.491727941176471 -0.04411764705882426
+v -0.28125 1.491727941176471 0.14338235294117574
+v -0.28125 1.3042279411764715 -0.04411764705882426
+v -0.28125 1.3042279411764715 0.14338235294117574
+vt 0.3125 1
+vt 0.3125 0.8125
+vt 0.5 1
+vt 0.3125 0.8125
+vt 0.5 0.8125
+vt 0.5 1
+vt 0.3125 1
+vt 0.3125 0.8125
+vt 0.5 1
+vt 0.3125 0.8125
+vt 0.5 0.8125
+vt 0.5 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vt 0 1
+vt 0 0.9375
+vt 0.1875 1
+vt 0 0.9375
+vt 0.1875 0.9375
+vt 0.1875 1
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn 1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn -1 0 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 -1 0
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+vn 0 0 -1
+usemtl m_2
+f 129/577/577 131/578/578 130/579/579
+f 131/580/580 132/581/581 130/582/582
+usemtl m_2
+f 133/583/583 135/584/584 134/585/585
+f 135/586/586 136/587/587 134/588/588
+usemtl m_2
+f 133/589/589 134/590/590 130/591/591
+f 134/592/592 129/593/593 130/594/594
+usemtl m_2
+f 136/595/595 135/596/596 131/597/597
+f 135/598/598 132/599/599 131/600/600
+usemtl m_2
+f 134/601/601 136/602/602 129/603/603
+f 136/604/604 131/605/605 129/606/606
+usemtl m_2
+f 130/607/607 132/608/608 133/609/609
+f 132/610/610 135/611/611 133/612/612
diff --git a/src/main/resources/assets/dg/penguin.png b/src/main/resources/assets/dg/penguin.png
deleted file mode 100644
index 68aed924..00000000
--- a/src/main/resources/assets/dg/penguin.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/dg/textures/penguin.png b/src/main/resources/assets/dg/textures/penguin.png
new file mode 100644
index 00000000..4b39154c
--- /dev/null
+++ b/src/main/resources/assets/dg/textures/penguin.png
Binary files differ