commit cf93ea4e762fbaf34d00b7349e6d1fe76a313926
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Mar 4 00:06:38 2023 +0100

    Introduce InitAssets. We'll use this later to pass on references to the tablebase file to the TwistyObject (so that it can use this for perfect scrambling)

diff --git a/src/main/java/org/distorted/objectlib/main/InitAssets.java b/src/main/java/org/distorted/objectlib/main/InitAssets.java
new file mode 100644
index 00000000..2444fcdf
--- /dev/null
+++ b/src/main/java/org/distorted/objectlib/main/InitAssets.java
@@ -0,0 +1,56 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright 2019 Leszek Koltunski                                                               //
+//                                                                                               //
+// This file is part of Magic Cube.                                                              //
+//                                                                                               //
+// Magic Cube is proprietary software licensed under an EULA which you should have received      //
+// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+package org.distorted.objectlib.main;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+import java.io.InputStream;
+
+public class InitAssets
+  {
+  InputStream mJsonStream;
+  InputStream mMeshStream;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public InitAssets(InputStream jsonStream)
+    {
+    mJsonStream = jsonStream;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public InitAssets(InputStream jsonStream, InputStream meshStream)
+    {
+    mJsonStream = jsonStream;
+    mMeshStream = meshStream;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public boolean noJsonStream()
+    {
+    return mJsonStream==null;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public InputStream getJsonStream()
+    {
+    return mJsonStream;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public InputStream getMeshStream()
+    {
+    return mMeshStream;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/org/distorted/objectlib/main/ObjectControl.java b/src/main/java/org/distorted/objectlib/main/ObjectControl.java
index 606953f3..3878b115 100644
--- a/src/main/java/org/distorted/objectlib/main/ObjectControl.java
+++ b/src/main/java/org/distorted/objectlib/main/ObjectControl.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.main;
 
-import java.io.InputStream;
-
 import android.app.Activity;
 import android.content.SharedPreferences;
 import android.util.DisplayMetrics;
@@ -696,14 +694,14 @@ public class ObjectControl
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public void changeObject(int ordinal, int meshState, int iconMode, InputStream jsonStream, InputStream meshStream)
+    public void changeObject(int ordinal, int meshState, int iconMode, InitAssets asset)
       {
-      mPreRender.changeObject(ordinal, meshState, iconMode, jsonStream, meshStream);
+      mPreRender.changeObject(ordinal, meshState, iconMode, asset);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public void changeIfDifferent(int ordinal, String newName, int meshState, int iconMode, InputStream jsonStream, InputStream meshStream)
+    public void changeIfDifferent(int ordinal, String newName, int meshState, int iconMode, InitAssets asset)
       {
       TwistyObject object = mPreRender.getObject();
       String oldName = object==null ? "" : object.getShortName();
@@ -712,7 +710,7 @@ public class ObjectControl
         {
         mMeshState = meshState;
         mIconMode  = iconMode;
-        mPreRender.changeObject(ordinal, meshState, iconMode, jsonStream, meshStream);
+        mPreRender.changeObject(ordinal, meshState, iconMode, asset);
         }
       }
 
diff --git a/src/main/java/org/distorted/objectlib/main/ObjectPreRender.java b/src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
index d79bce53..0787dc4c 100644
--- a/src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
+++ b/src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.main;
 
-import java.io.InputStream;
-
 import android.app.Activity;
 import android.content.SharedPreferences;
 
@@ -35,7 +33,7 @@ public class ObjectPreRender implements EffectListener
   private static final int MAX_SLOW_SCRAMBLE = 50;
 
   private final ObjectControl mController;
-  private InputStream mJsonStream, mMeshStream;
+  private InitAssets mAsset;
   private int mOrdinal;
   private TwistyObject mOldObject, mNewObject;
   private SharedPreferences mPreferences;
@@ -102,7 +100,7 @@ public class ObjectPreRender implements EffectListener
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  private void createObjectNow(int ordinal, int meshState, int iconMode, InputStream jsonStream, InputStream meshStream)
+  private void createObjectNow(int ordinal, int meshState, int iconMode, InitAssets assets)
     {
     long time1 = System.currentTimeMillis();
     Static3D move = new Static3D(mMoveX,mMoveY,0);
@@ -110,13 +108,13 @@ public class ObjectPreRender implements EffectListener
     TwistyObject tmp;
     boolean error = false;
 
-    if( jsonStream==null )
+    if( assets==null || assets.noJsonStream() )
       {
-      tmp = ObjectType.create( ordinal, meshState, iconMode, quat, move, mScale, meshStream);
+      tmp = ObjectType.create( ordinal, meshState, iconMode, quat, move, mScale, assets);
       }
     else
       {
-      tmp = new TwistyJson( jsonStream, meshState, iconMode, quat, move, mScale, meshStream);
+      tmp = new TwistyJson( meshState, iconMode, quat, move, mScale, assets);
       error = tmp.getError();
       }
 
@@ -275,7 +273,7 @@ public class ObjectPreRender implements EffectListener
     {
     mChangeObject = false;
     blockEverything(BlockController.PLACE_1);
-    createObjectNow(mOrdinal,mMeshState,mIconMode,mJsonStream,mMeshStream);
+    createObjectNow(mOrdinal,mMeshState,mIconMode,mAsset);
     int duration = BaseEffect.Type.SIZECHANGE.getDuration();
     doEffectNow( BaseEffect.Type.SIZECHANGE, duration );
     }
@@ -531,14 +529,13 @@ public class ObjectPreRender implements EffectListener
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void changeObject(int ordinal, int meshState, int iconMode, InputStream jsonStream, InputStream meshStream)
+  public void changeObject(int ordinal, int meshState, int iconMode, InitAssets asset)
     {
     mChangeObject = true;
     mOrdinal    = ordinal;
     mMeshState  = meshState;
     mIconMode   = iconMode;
-    mJsonStream = jsonStream;
-    mMeshStream = meshStream;
+    mAsset      = asset;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/main/ObjectType.java b/src/main/java/org/distorted/objectlib/main/ObjectType.java
index c5725be6..ee8a7a7e 100644
--- a/src/main/java/org/distorted/objectlib/main/ObjectType.java
+++ b/src/main/java/org/distorted/objectlib/main/ObjectType.java
@@ -9,7 +9,6 @@
 
 package org.distorted.objectlib.main;
 
-import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 
@@ -186,12 +185,12 @@ public enum ObjectType
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public static TwistyObject create(int ordinal, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream meshStream)
+  public static TwistyObject create(int ordinal, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitAssets asset)
     {
     /*
     if( ordinal==MORP_2.ordinal() )
       {
-      return new TwistyMorphix(objects[ordinal].mInitData,meshState,iconMode,quat,move,scale,meshStream);
+      return new TwistyMorphix(meshState,iconMode,quat,move,scale,objects[ordinal].mInitData,asset);
       }
     */
 
@@ -206,7 +205,7 @@ public enum ObjectType
       if( cons.length==1 )
         {
         InitData data = objects[ordinal].mInitData;
-        Object[] parameters = new Object[] { data,meshState,iconMode,quat,move,scale,meshStream };
+        Object[] parameters = new Object[] { meshState,iconMode,quat,move,scale,data,asset };
         return (TwistyObject)cons[0].newInstance(parameters);
         }
       else
diff --git a/src/main/java/org/distorted/objectlib/main/TwistyJson.java b/src/main/java/org/distorted/objectlib/main/TwistyJson.java
index 172d6093..6cca045b 100644
--- a/src/main/java/org/distorted/objectlib/main/TwistyJson.java
+++ b/src/main/java/org/distorted/objectlib/main/TwistyJson.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.main;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
@@ -19,7 +17,6 @@ import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectSticker;
 import org.distorted.objectlib.helpers.ObjectStickerOverride;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
-import org.distorted.objectlib.scrambling.ScrambleState;
 import org.distorted.objectlib.json.JsonReader;
 import org.distorted.objectlib.shape.ShapeDiamond;
 import org.distorted.objectlib.shape.ShapeDodecahedron;
@@ -42,9 +39,9 @@ public class TwistyJson extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyJson(InputStream jsonStream, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream meshStream)
+  public TwistyJson(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitAssets assets)
     {
-    super(jsonStream, meshState, iconMode, quat, move, scale, meshStream);
+    super(meshState, iconMode, quat, move, scale, assets);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/main/TwistyObject.java b/src/main/java/org/distorted/objectlib/main/TwistyObject.java
index 7d3d7356..4b452ebc 100644
--- a/src/main/java/org/distorted/objectlib/main/TwistyObject.java
+++ b/src/main/java/org/distorted/objectlib/main/TwistyObject.java
@@ -158,10 +158,12 @@ public abstract class TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  TwistyObject(InputStream jsonStream, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream meshStream)
+  TwistyObject(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitAssets assets)
     {
     try
       {
+      InputStream jsonStream = assets!=null ? assets.getJsonStream(): null;
+      InputStream meshStream = assets!=null ? assets.getMeshStream(): null;
       JsonReader reader = new JsonReader();
       reader.parseJsonFile(jsonStream);
       setReader(reader);
@@ -181,11 +183,12 @@ public abstract class TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyObject(InitData data, int meshState, int iconMode, float size, Static4D quat, Static3D move, float scale, InputStream meshStream)
+  public TwistyObject(int meshState, int iconMode, float size, Static4D quat, Static3D move, float scale, InitData data, InitAssets assets)
     {
     mNumLayers = data.getNumLayers();
     mSize      = size;
     mInitData  = data;
+    InputStream meshStream = assets!=null ? assets.getMeshStream() : null;
     initialize(meshState,iconMode,quat,move,scale,meshStream,false);
     mError = false;
     mErrorString = null;
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyAxis.java b/src/main/java/org/distorted/objectlib/objects/TwistyAxis.java
index 7cb0e981..b7baff36 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyAxis.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyAxis.java
@@ -16,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -23,8 +24,6 @@ import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_SHAPEMOD;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -47,9 +46,9 @@ public class TwistyAxis extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyAxis(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyAxis(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedAbstract.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedAbstract.java
index 95a8f9f1..36c4d5de 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedAbstract.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedAbstract.java
@@ -15,12 +15,11 @@ import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public abstract class TwistyBandagedAbstract extends ShapeHexahedron
@@ -43,9 +42,9 @@ public abstract class TwistyBandagedAbstract extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyBandagedAbstract(InitData data, int meshState, int iconMode, float size, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyBandagedAbstract(int meshState, int iconMode, float size, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, size, quat, move, scale, stream);
+    super(meshState, iconMode, size, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java
index 14cee782..d7dd3545 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java
@@ -11,8 +11,6 @@ package org.distorted.objectlib.objects;
 
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CUBOID;
 
-import java.io.InputStream;
-
 import org.distorted.library.effect.EffectName;
 import org.distorted.library.main.DistortedLibrary;
 import org.distorted.library.type.Static3D;
@@ -22,6 +20,7 @@ import org.distorted.objectlib.helpers.FactoryBandagedCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.main.ObjectType;
@@ -232,9 +231,9 @@ public class TwistyBandagedCuboid extends TwistyBandagedAbstract
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyBandagedCuboid(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyBandagedCuboid(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, (data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f, quat, move, scale, stream);
+    super(meshState, iconMode, (data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCamouflage.java b/src/main/java/org/distorted/objectlib/objects/TwistyCamouflage.java
index e9f3cd85..73371828 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCamouflage.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCamouflage.java
@@ -18,13 +18,12 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.scrambling.ObjectScrambler;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class TwistyCamouflage extends TwistyBandagedAbstract
@@ -120,9 +119,10 @@ public class TwistyCamouflage extends TwistyBandagedAbstract
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyCamouflage(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyCamouflage(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, SIZE_CORRECTION*(data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f, quat, move, scale, stream);
+    super(meshState, iconMode, SIZE_CORRECTION*(data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f,
+          quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyContainer.java b/src/main/java/org/distorted/objectlib/objects/TwistyContainer.java
index 19d320d1..f8d8b1a8 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyContainer.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyContainer.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.FactoryCubit;
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -47,9 +46,9 @@ public class TwistyContainer extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyContainer(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyContainer(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCrazy2x2.java b/src/main/java/org/distorted/objectlib/objects/TwistyCrazy2x2.java
index 12394f23..854ad813 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCrazy2x2.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCrazy2x2.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.FactoryCubit;
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.TwistyObjectCubit;
@@ -53,9 +52,9 @@ public class TwistyCrazy2x2 extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyCrazy2x2(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyCrazy2x2(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCrazy3x3.java b/src/main/java/org/distorted/objectlib/objects/TwistyCrazy3x3.java
index debee36e..0ccd1af0 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCrazy3x3.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCrazy3x3.java
@@ -9,7 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
 import java.util.ArrayList;
 
 import org.distorted.library.type.Static3D;
@@ -20,6 +19,7 @@ import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectStickerOverride;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.TwistyObjectCubit;
@@ -66,9 +66,9 @@ public class TwistyCrazy3x3 extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyCrazy3x3(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyCrazy3x3(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCrystal.java b/src/main/java/org/distorted/objectlib/objects/TwistyCrystal.java
index 16045190..ce8d516b 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCrystal.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCrystal.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.FactoryCubit;
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -34,9 +33,9 @@ public class TwistyCrystal extends TwistyDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyCrystal(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyCrystal(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java b/src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java
index 4e5f7e8c..384f5ab9 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CUBOID;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -46,9 +45,9 @@ public class TwistyCuboid extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyCuboid(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyCuboid(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, (data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f, quat, move, scale, stream);
+    super(meshState, iconMode, (data.getNumLayers()[0]+data.getNumLayers()[1]+data.getNumLayers()[2])/3.0f, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java b/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
index ff866937..5b48e172 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_OCTAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -50,9 +49,9 @@ public class TwistyDiamond extends ShapeOctahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyDiamond(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyDiamond(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDino.java b/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
index 29bc575c..e703facc 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_CORNER;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
@@ -45,9 +44,9 @@ abstract class TwistyDino extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  TwistyDino(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  TwistyDino(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDino4.java b/src/main/java/org/distorted/objectlib/objects/TwistyDino4.java
index a01455b7..29e02fa8 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDino4.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDino4.java
@@ -9,12 +9,11 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
 import org.distorted.objectlib.helpers.ObjectSignature;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -27,9 +26,9 @@ public class TwistyDino4 extends TwistyDino
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyDino4(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyDino4(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDino6.java b/src/main/java/org/distorted/objectlib/objects/TwistyDino6.java
index f842d399..316e671e 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDino6.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDino6.java
@@ -9,12 +9,11 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
 import org.distorted.objectlib.helpers.ObjectSignature;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -23,9 +22,9 @@ import org.distorted.objectlib.main.ObjectType;
 
 public class TwistyDino6 extends TwistyDino
 {
-  public TwistyDino6(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyDino6(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDodecahedron.java b/src/main/java/org/distorted/objectlib/objects/TwistyDodecahedron.java
index 83731635..7f2d9f50 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDodecahedron.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDodecahedron.java
@@ -15,10 +15,9 @@ import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.C2;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.LEN;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.SIN54;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.touchcontrol.TouchControlDodecahedron;
 import org.distorted.objectlib.shape.ShapeDodecahedron;
@@ -57,9 +56,9 @@ abstract class TwistyDodecahedron extends ShapeDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  TwistyDodecahedron(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  TwistyDodecahedron(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyFisher.java b/src/main/java/org/distorted/objectlib/objects/TwistyFisher.java
index c885d0f0..c08bba1a 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyFisher.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyFisher.java
@@ -16,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -23,8 +24,6 @@ import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_SHAPEMOD;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -47,9 +46,9 @@ public class TwistyFisher extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyFisher(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyFisher(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java b/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
index b291de06..a679b104 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_EDGE;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
@@ -50,9 +49,9 @@ public class TwistyHelicopter extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyHelicopter(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyHelicopter(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java b/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
index a2e3f9cb..b7ffed98 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_CORNER;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -51,9 +50,9 @@ public class TwistyIvy extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyIvy(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyIvy(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyJing.java b/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
index d32ae2d5..04d5eacf 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_TETRAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -53,9 +52,9 @@ public class TwistyJing extends ShapeTetrahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyJing(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyJing(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java b/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
index 93d331ba..0a476ec1 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.COS54;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.SIN54;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.library.main.QuatHelper;
@@ -22,6 +20,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -31,9 +30,9 @@ import org.distorted.objectlib.helpers.ObjectShape;
 
 public class TwistyKilominx extends TwistyDodecahedron
 {
-  public TwistyKilominx(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyKilominx(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMasterball.java b/src/main/java/org/distorted/objectlib/objects/TwistyMasterball.java
index 2d5ffe78..27a18833 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMasterball.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMasterball.java
@@ -19,14 +19,13 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeDiamond;
 import org.distorted.objectlib.touchcontrol.TouchControlBall;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class TwistyMasterball extends ShapeDiamond
@@ -50,9 +49,9 @@ public class TwistyMasterball extends ShapeDiamond
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMasterball(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMasterball(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java b/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
index ef4c724d..a4db7c63 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.COS54;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.SIN54;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.library.main.QuatHelper;
@@ -22,6 +20,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -36,9 +35,9 @@ public class TwistyMegaminx extends TwistyDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMegaminx(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMegaminx(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java b/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
index 80c5c70c..b76603da 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_MIRROR;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -52,9 +51,9 @@ public class TwistyMirror extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMirror(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMirror(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMixup.java b/src/main/java/org/distorted/objectlib/objects/TwistyMixup.java
index b5628866..487035c4 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMixup.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMixup.java
@@ -11,12 +11,11 @@ package org.distorted.objectlib.objects;
 
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -39,9 +38,9 @@ abstract class TwistyMixup extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMixup(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMixup(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3.java b/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3.java
index 48c24344..b63a02cb 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3.java
@@ -16,12 +16,11 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class TwistyMixup3x3 extends TwistyMixup
@@ -31,9 +30,9 @@ public class TwistyMixup3x3 extends TwistyMixup
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMixup3x3(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMixup3x3(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3Plus.java b/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3Plus.java
index af736138..d87b596e 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3Plus.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMixup3x3Plus.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.objectlib.helpers.FactoryCubit;
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -31,9 +30,9 @@ public class TwistyMixup3x3Plus extends TwistyMixup
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMixup3x3Plus(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMixup3x3Plus(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java b/src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java
index 9be6487a..d5aa1066 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java
@@ -16,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -23,8 +24,6 @@ import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.shape.ShapeTetrahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_SHAPEMOD;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -52,9 +51,9 @@ public class TwistyMorphix extends ShapeTetrahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyMorphix(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyMorphix(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyPentultimate.java b/src/main/java/org/distorted/objectlib/objects/TwistyPentultimate.java
index e92e034b..b372f011 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyPentultimate.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyPentultimate.java
@@ -16,13 +16,12 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.C2;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.COS54;
@@ -38,9 +37,9 @@ public class TwistyPentultimate extends TwistyDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyPentultimate(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyPentultimate(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
index 69e44e8e..7dca49a0 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_TETRAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron;
@@ -46,9 +45,9 @@ public class TwistyPyraminx extends ShapeTetrahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyPyraminx(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyPyraminx(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDiamond.java b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDiamond.java
index c7123a18..8302dead 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDiamond.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDiamond.java
@@ -19,14 +19,13 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeOctahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlOctahedron;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class TwistyPyraminxDiamond extends ShapeOctahedron
@@ -49,9 +48,9 @@ public class TwistyPyraminxDiamond extends ShapeOctahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyPyraminxDiamond(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyPyraminxDiamond(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDuo.java b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDuo.java
index 23ba1f71..4787e7d0 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDuo.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDuo.java
@@ -19,14 +19,13 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeTetrahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class TwistyPyraminxDuo extends ShapeTetrahedron
@@ -51,9 +50,9 @@ public class TwistyPyraminxDuo extends ShapeTetrahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyPyraminxDuo(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyPyraminxDuo(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java b/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
index 8b1989bf..21ca98bb 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_CORNER;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
@@ -47,9 +46,9 @@ public class TwistyRedi extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyRedi(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyRedi(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyRex.java b/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
index 0b0df6e5..ee5ece4b 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_CORNER;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
@@ -50,9 +49,9 @@ public class TwistyRex extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyRex(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyRex(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java b/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
index 9d1e4622..5b221817 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_SPLIT_CORNER;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -48,9 +47,9 @@ public class TwistySkewb extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistySkewb(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistySkewb(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, 2*data.getNumLayers()[0]-2, quat, move, scale, stream);
+    super(meshState, iconMode, 2*data.getNumLayers()[0]-2, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySquare.java b/src/main/java/org/distorted/objectlib/objects/TwistySquare.java
index 9c84fd3b..6efbb71b 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySquare.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySquare.java
@@ -12,10 +12,9 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_SQUARE;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
@@ -44,9 +43,9 @@ abstract class TwistySquare extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  TwistySquare(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  TwistySquare(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java b/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
index 68113650..b11f93b3 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -33,9 +32,9 @@ public class TwistySquare1 extends TwistySquare
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistySquare1(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistySquare1(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java b/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
index c5ef6b5d..216c7b85 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -18,6 +16,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
@@ -33,9 +32,9 @@ public class TwistySquare2 extends TwistySquare
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistySquare2(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistySquare2(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyStarminx.java b/src/main/java/org/distorted/objectlib/objects/TwistyStarminx.java
index 68ab443d..ad535c70 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyStarminx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyStarminx.java
@@ -17,12 +17,11 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.C2;
 import static org.distorted.objectlib.touchcontrol.TouchControlDodecahedron.COS54;
@@ -38,9 +37,9 @@ public class TwistyStarminx extends TwistyDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyStarminx(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyStarminx(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, quat, move, scale, stream);
+    super(meshState, iconMode, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyTrajber.java b/src/main/java/org/distorted/objectlib/objects/TwistyTrajber.java
index b003bebe..83f4abf7 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyTrajber.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyTrajber.java
@@ -16,6 +16,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -23,8 +24,6 @@ import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeOctahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlOctahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_OCTAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -52,9 +51,9 @@ public class TwistyTrajber extends ShapeOctahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyTrajber(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyTrajber(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java b/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
index af577482..0d129fb6 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
@@ -12,8 +12,6 @@ package org.distorted.objectlib.objects;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_DODECAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -21,6 +19,7 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -56,9 +55,9 @@ public class TwistyUltimate extends ShapeDodecahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyUltimate(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyUltimate(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyVoid.java b/src/main/java/org/distorted/objectlib/objects/TwistyVoid.java
index 903ec4a0..c9166da7 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyVoid.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyVoid.java
@@ -16,14 +16,13 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.ObjectType;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
 
-import java.io.InputStream;
-
 import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
 import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
 
@@ -46,9 +45,9 @@ public class TwistyVoid extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyVoid(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyVoid(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyWindmill.java b/src/main/java/org/distorted/objectlib/objects/TwistyWindmill.java
index 1ce6975e..bae876d1 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyWindmill.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyWindmill.java
@@ -9,8 +9,6 @@
 
 package org.distorted.objectlib.objects;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -19,6 +17,7 @@ import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectSignature;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
 import org.distorted.objectlib.main.InitData;
@@ -51,9 +50,9 @@ public class TwistyWindmill extends ShapeHexahedron
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public TwistyWindmill(InitData data, int meshState, int iconMode, Static4D quat, Static3D move, float scale, InputStream stream)
+  public TwistyWindmill(int meshState, int iconMode, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, data.getNumLayers()[0], quat, move, scale, stream);
+    super(meshState, iconMode, data.getNumLayers()[0], quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeDiamond.java b/src/main/java/org/distorted/objectlib/shape/ShapeDiamond.java
index 74d8f62a..08e072f5 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeDiamond.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeDiamond.java
@@ -11,11 +11,10 @@ package org.distorted.objectlib.shape;
 
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public abstract class ShapeDiamond extends TwistyObject
@@ -49,9 +48,9 @@ public abstract class ShapeDiamond extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeDiamond(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeDiamond(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeDodecahedron.java b/src/main/java/org/distorted/objectlib/shape/ShapeDodecahedron.java
index 9f609260..943d8acf 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeDodecahedron.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeDodecahedron.java
@@ -9,10 +9,9 @@
 
 package org.distorted.objectlib.shape;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
@@ -48,9 +47,9 @@ public abstract class ShapeDodecahedron extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeDodecahedron(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeDodecahedron(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeHexahedron.java b/src/main/java/org/distorted/objectlib/shape/ShapeHexahedron.java
index ec686bad..cc27282f 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeHexahedron.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeHexahedron.java
@@ -9,10 +9,9 @@
 
 package org.distorted.objectlib.shape;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
@@ -35,9 +34,9 @@ public abstract class ShapeHexahedron extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeHexahedron(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeHexahedron(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeIcosahedron.java b/src/main/java/org/distorted/objectlib/shape/ShapeIcosahedron.java
index d2e4c550..e9befc48 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeIcosahedron.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeIcosahedron.java
@@ -11,11 +11,10 @@ package org.distorted.objectlib.shape;
 
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
-import java.io.InputStream;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public abstract class ShapeIcosahedron extends TwistyObject
@@ -57,9 +56,9 @@ public abstract class ShapeIcosahedron extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeIcosahedron(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeIcosahedron(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeOctahedron.java b/src/main/java/org/distorted/objectlib/shape/ShapeOctahedron.java
index 9cb0d59c..409888dd 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeOctahedron.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeOctahedron.java
@@ -9,10 +9,9 @@
 
 package org.distorted.objectlib.shape;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
@@ -36,9 +35,9 @@ public abstract class ShapeOctahedron extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeOctahedron(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeOctahedron(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InitData data, InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objectlib/shape/ShapeTetrahedron.java b/src/main/java/org/distorted/objectlib/shape/ShapeTetrahedron.java
index 9b1f4d07..fce6273b 100644
--- a/src/main/java/org/distorted/objectlib/shape/ShapeTetrahedron.java
+++ b/src/main/java/org/distorted/objectlib/shape/ShapeTetrahedron.java
@@ -9,10 +9,9 @@
 
 package org.distorted.objectlib.shape;
 
-import java.io.InputStream;
-
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
+import org.distorted.objectlib.main.InitAssets;
 import org.distorted.objectlib.main.InitData;
 import org.distorted.objectlib.main.TwistyObject;
 
@@ -34,9 +33,9 @@ public abstract class ShapeTetrahedron extends TwistyObject
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public ShapeTetrahedron(InitData data, int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale, InputStream stream)
+  public ShapeTetrahedron(int meshState, int iconMode, float realSize, Static4D quat, Static3D move, float scale,InitData data,  InitAssets asset)
     {
-    super(data, meshState, iconMode, realSize, quat, move, scale, stream);
+    super(meshState, iconMode, realSize, quat, move, scale, data, asset);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
