diff --git a/_config.yml b/_config.yml deleted file mode 100644 index c741881..0000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-slate \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8480356..29d4950 100644 --- a/build.gradle +++ b/build.gradle @@ -1,96 +1,82 @@ -buildscript { - repositories { - jcenter() - maven { url = "http://files.minecraftforge.net/maven" } - } - dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' - } -} -apply plugin: 'net.minecraftforge.gradle.forge' -//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup. - - -version = "0.1" -group= "fr.jackcartersmith.orbsat" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = "orbsat" - -sourceCompatibility = targetCompatibility = "1.8" // Need this here so eclipse task generates correctly. -compileJava { - sourceCompatibility = targetCompatibility = "1.8" -} - -minecraft { - version = "12.18.3.2185" - mappings = "snapshot_20161111" - runDir = "run" - - // the mappings can be changed at any time, and must be in the following format. - // snapshot_YYYYMMDD snapshot are built nightly. - // stable_# stables are built at the discretion of the MCP team. - // Use non-default mappings at your own risk. they may not allways work. - // simply re-run your setup task after changing the mappings to update your workspace. - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. -} - -repositories { - maven { // WAILA - name "ProfMobius Maven FS" - url "http://mobiusstrip.eu/maven" - } - maven { // OpenComputers - name "OpenComputers" - url "http://maven.cil.li/" - } - // maven { // McJty's CompatLayer - // name 'K4 maven' - // url "http://maven.k-4u.nl/" - // } -} - -dependencies { - // you may put jars on which you depend on in ./libs - // or you may define them like so.. - //compile "some.group:artifact:version:classifier" - //compile "some.group:artifact:version" - - // real examples - //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env - //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env - - // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. - //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' - - // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, - // except that these dependencies get remapped to your current MCP mappings - //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' - //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' - - // for more info... - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html - - // deobfCompile "com.github.mcjty:compatlayer:1.10-0.+" - deobfCompile "li.cil.oc:OpenComputers:MC1.10.2-1.6.0.+" - deobfCompile "mcp.mobius.waila:Waila:1.7.0-B3_1.9.4" -} - -processResources -{ - // this will ensure that this task is redone when the versions change. - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version - - // replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - // replace version and mcversion - expand 'version':project.version, 'mcversion':project.minecraft.version - } - - // copy everything else, thats not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - } -} +buildscript { + repositories { + jcenter() + maven { url = "http://files.minecraftforge.net/maven" } + } + dependencies { + classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' + } +} +apply plugin: 'net.minecraftforge.gradle.forge' +//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. + + +version = "3.0" +group = "fr.jackcartersmith.orbsat" // http://maven.apache.org/guides/mini/guide-naming-conventions.html +archivesBaseName = "orbsat" + +sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. +compileJava { + sourceCompatibility = targetCompatibility = '1.8' +} + +minecraft { + version = "1.12.2-14.23.4.2705" + runDir = "run" + + // the mappings can be changed at any time, and must be in the following format. + // snapshot_YYYYMMDD snapshot are built nightly. + // stable_# stables are built at the discretion of the MCP team. + // Use non-default mappings at your own risk. they may not always work. + // simply re-run your setup task after changing the mappings to update your workspace. + mappings = "stable_39" + // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. +} + +repositories { + maven { url = "http://maven.cil.li/" } +} + +dependencies { + // you may put jars on which you depend on in ./libs + // or you may define them like so.. + //compile "some.group:artifact:version:classifier" + //compile "some.group:artifact:version" + compile "li.cil.oc:OpenComputers:MC1.12.2-1.7.+:api" + + // real examples + //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env + //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env + + // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. + //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, + // except that these dependencies get remapped to your current MCP mappings + //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' + //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // for more info... + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + +} + +processResources { + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':project.version, 'mcversion':project.minecraft.version + } + + // copy everything else except the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude 'mcmod.info' + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..e9b9fd5 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs=-Xmx3G diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b761216..30d399d 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 678d9d8..e18cba7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jul 02 15:54:47 CDT 2014 +#Mon Sep 14 12:28:28 PDT 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip diff --git a/gradlew.bat b/gradlew.bat index 8a0b282..aec9973 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,90 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 0000000..42a155b --- /dev/null +++ b/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,31 @@ +package com.example.examplemod; + +import net.minecraft.init.Blocks; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import org.apache.logging.log4j.Logger; + +@Mod(modid = ExampleMod.MODID, name = ExampleMod.NAME, version = ExampleMod.VERSION) +public class ExampleMod +{ + public static final String MODID = "examplemod"; + public static final String NAME = "Example Mod"; + public static final String VERSION = "1.0"; + + private static Logger logger; + + @EventHandler + public void preInit(FMLPreInitializationEvent event) + { + logger = event.getModLog(); + } + + @EventHandler + public void init(FMLInitializationEvent event) + { + // some example code + logger.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName()); + } +} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OSBlocks.java b/src/main/java/fr/jackcartersmith/orbsat/OSBlocks.java deleted file mode 100644 index 7dcce3b..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OSBlocks.java +++ /dev/null @@ -1,15 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import fr.jackcartersmith.orbsat.block.BlockOSBase; -import fr.jackcartersmith.orbsat.block.BlockType_Devices; -import fr.jackcartersmith.orbsat.block.ItemBlockOSBase; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; - -public class OSBlocks { - public static BlockOSBase devices; - - public static void init(){ - devices = (BlockOSBase)new BlockOSBase("devices", Material.IRON, PropertyEnum.create("type", BlockType_Devices.class), ItemBlockOSBase.class).setOpaque(true).setHardness(2.0F).setResistance(5.0F); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OSEnums.java b/src/main/java/fr/jackcartersmith/orbsat/OSEnums.java deleted file mode 100644 index d71b13f..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OSEnums.java +++ /dev/null @@ -1,37 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import java.util.Locale; - -import net.minecraft.util.IStringSerializable; - -public class OSEnums { - public enum SideConfig implements IStringSerializable - { - NONE("none"), - INPUT("in"), - OUTPUT("out"); - - final String texture; - - SideConfig(String texture) - { - this.texture = texture; - } - - @Override - public String getName() - { - return this.toString().toLowerCase(Locale.ENGLISH); - } - - public String getTextureName() - { - return texture; - } - - public static SideConfig next(SideConfig current) - { - return current==INPUT?OUTPUT: current==OUTPUT?NONE: INPUT; - } - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OSItems.java b/src/main/java/fr/jackcartersmith/orbsat/OSItems.java deleted file mode 100644 index 6a03a30..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OSItems.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import fr.jackcartersmith.orbsat.item.ItemOSBase; - -public class OSItems { - public static ItemOSBase componentsItem; - public static ItemOSBase satelliteItem; - - public static void init(){ - componentsItem = new ItemOSBase("components",3, - "laserDesignator","designatorCircuit", - "photonLens","photonConcentrator","photonCapacitor"); - satelliteItem = new ItemOSBase("satellites",1, - "classic_mki","classic_mkii","classic_mkiii"); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OSProperties.java b/src/main/java/fr/jackcartersmith/orbsat/OSProperties.java deleted file mode 100644 index 9f033a7..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OSProperties.java +++ /dev/null @@ -1,201 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Set; - -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableSet; - -import fr.jackcartersmith.orbsat.OSEnums.SideConfig; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.properties.PropertyHelper; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.property.IUnlistedProperty; - -public class OSProperties { - public static final PropertyDirection FACING_ALL = PropertyDirection.create("facing"); - public static final PropertyDirection FACING_HORIZONTAL = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public static final PropertyBoolInverted MULTIBLOCKSLAVE = PropertyBoolInverted.create("_0multiblockslave");//Name starts with '_0' to ensure priority when overriding models - public static final PropertyBoolInverted DYNAMICRENDER = PropertyBoolInverted.create("_1dynamicrender");//Name starts with '_1' to ensure priority over anything but the multiblockslave property - public static final PropertySet CONNECTIONS = new PropertySet("conns"); - -// public static final PropertyEnum[] SIDECONFIG = { -// PropertyEnum.create("sideconfig_down", IEEnums.SideConfig.class), -// PropertyEnum.create("sideconfig_up", IEEnums.SideConfig.class), -// PropertyEnum.create("sideconfig_north", IEEnums.SideConfig.class), -// PropertyEnum.create("sideconfig_south", IEEnums.SideConfig.class), -// PropertyEnum.create("sideconfig_west", IEEnums.SideConfig.class), -// PropertyEnum.create("sideconfig_east", IEEnums.SideConfig.class) -// }; - public static final ProperySideConfig[] SIDECONFIG = { - new ProperySideConfig("sideconfig_down"), - new ProperySideConfig("sideconfig_up"), - new ProperySideConfig("sideconfig_north"), - new ProperySideConfig("sideconfig_south"), - new ProperySideConfig("sideconfig_west"), - new ProperySideConfig("sideconfig_east") - }; - public static final PropertyBoolInverted[] SIDECONNECTION = { - PropertyBoolInverted.create("sideconnection_down"), - PropertyBoolInverted.create("sideconnection_up"), - PropertyBoolInverted.create("sideconnection_north"), - PropertyBoolInverted.create("sideconnection_south"), - PropertyBoolInverted.create("sideconnection_west"), - PropertyBoolInverted.create("sideconnection_east") - }; - - //An array of non-descript booleans for mirroring, active textures, etc. - public static final PropertyBoolInverted[] BOOLEANS = { - PropertyBoolInverted.create("boolean0"), - PropertyBoolInverted.create("boolean1"), - PropertyBoolInverted.create("boolean2") - }; - public static final PropertyInteger INT_4 = PropertyInteger.create("int_4", 0,3); - public static final PropertyInteger INT_16 = PropertyInteger.create("int_16", 0,15); - - public static class ProperySideConfig implements IUnlistedProperty - { - final String name; - public ProperySideConfig(String name) - { - this.name = name; - } - @Override - public String getName() - { - return name; - } - @Override - public boolean isValid(SideConfig value) - { - return true; - } - @Override - public Class getType() - { - return OSEnums.SideConfig.class; - } - @Override - public String valueToString(SideConfig value) - { - return value.toString(); - } - } - - public static final IUnlistedProperty OBJ_TEXTURE_REMAP = new IUnlistedProperty() - { - @Override - public String getName() - { - return "obj_texture_remap"; - } - @Override - public boolean isValid(HashMap value) - { - return true; - } - @Override - public Class getType() { - return HashMap.class; - } - @Override - public String valueToString(HashMap value) - { - return value.toString(); - } - }; - - public static class PropertyBoolInverted extends PropertyHelper - { - private final ImmutableSet allowedValues = ImmutableSet.of(Boolean.valueOf(false), Boolean.valueOf(true)); - protected PropertyBoolInverted(String name) - { - super(name, Boolean.class); - } - @Override - public Collection getAllowedValues() - { - return this.allowedValues; - } - @Override - public Optional parseValue(String value) - { - return Optional.of(Boolean.getBoolean(value)); - } - public static PropertyBoolInverted create(String name) - { - return new PropertyBoolInverted(name); - } - @Override - public String getName(Boolean value) - { - return value.toString(); - } - } - - @SuppressWarnings("rawtypes") - public static class PropertySet implements IUnlistedProperty - { - String name; - - public PropertySet(String n) - { - name = n; - } - - @Override - public String getName() - { - return name; - } - - @Override - public boolean isValid(Set value) - { - return value != null; - } - - @Override - public Class getType() - { - return Set.class; - } - - @Override - public String valueToString(Set value) - { - return value.toString(); - } - } - - public static final IUnlistedProperty TILEENTITY_PASSTHROUGH = new IUnlistedProperty() - { - @Override - public String getName() - { - return "tileentity_passthrough"; - } - - @Override - public boolean isValid(TileEntity value) - { - return true; - } - - @Override - public Class getType() - { - return TileEntity.class; - } - - @Override - public String valueToString(TileEntity value) - { - return value.toString(); - } - }; -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OSRefs.java b/src/main/java/fr/jackcartersmith/orbsat/OSRefs.java deleted file mode 100644 index f9fb997..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OSRefs.java +++ /dev/null @@ -1,30 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; - -public class OSRefs { - public static final String MODID = "orbsat"; - public static final String NAME = "Orbital Satellite"; - public static final String VERSION = "0.1"; - - public static final String CLIENT_PROXY_CLASS = "fr.jackcartersmith.orbsat.client.ClientProxy"; - public static final String COMMON_PROXY_CLASS = "fr.jackcartersmith.orbsat.common.CommonProxy"; - - public static final String CHAT = "chat." + MODID + "."; - public static final String CHAT_WARN = CHAT+"warning."; - public static final String CHAT_INFO = CHAT+"info."; - public static final String CHAT_COMMAND = CHAT+"command."; - - public static final String DESC = "desc." + MODID + "."; - public static final String DESC_INFO = DESC+"info."; - public static final String DESC_FLAVOUR = DESC+"flavour."; - - public static final String GUI = "gui." + MODID + "."; - public static final String GUI_CONFIG = "gui." + MODID + ".config."; - - public static ArrayList registeredOSItems = new ArrayList(); - public static ArrayList registeredOSBlocks = new ArrayList(); -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/OrbitalSatellite.java b/src/main/java/fr/jackcartersmith/orbsat/OrbitalSatellite.java deleted file mode 100644 index 7ac675d..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/OrbitalSatellite.java +++ /dev/null @@ -1,119 +0,0 @@ -package fr.jackcartersmith.orbsat; - -import fr.jackcartersmith.orbsat.common.CommonProxy; -import fr.jackcartersmith.orbsat.common.util.OSLogger; -import net.minecraft.block.Block; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.SidedProxy; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.common.registry.IForgeRegistryEntry; - -@Mod(modid=OSRefs.MODID, name=OSRefs.NAME, version=OSRefs.VERSION, dependencies = "required-after:Forge@[12.18.3.2185,)") -public class OrbitalSatellite { - - @Mod.Instance(OSRefs.MODID) - public static OrbitalSatellite INSTANCE; - - @SidedProxy(clientSide=OSRefs.CLIENT_PROXY_CLASS, serverSide=OSRefs.COMMON_PROXY_CLASS) - public static CommonProxy proxy; - - public static final SimpleNetworkWrapper packetHandler = NetworkRegistry.INSTANCE.newSimpleChannel(OSRefs.MODID); - - @Mod.EventHandler - public void preInit(FMLPreInitializationEvent event) - { - OSLogger.info("[OrbSAT] Connection of primary laser chamber..."); - OSItems.init(); - OSBlocks.init(); - proxy.preInit(); - } - @Mod.EventHandler - public void init(FMLInitializationEvent event) - { - OSLogger.info("[OrbSAT] Sending satellite in orbit..."); - } - @Mod.EventHandler - public void postInit(FMLPostInitializationEvent event) - { - OSLogger.info("[OrbSAT] Charging satellite for first laser strike..."); - } - /* - * It's a begin for support 1.10 and 1.11 simultaly - * - * - @Mod.EventHandler - public void onMissingMapping(FMLMissingMappingsEvent event) { - OSLogger.warn("[OrbSAT] Repairing missing mappings..."); - for (FMLMissingMappingsEvent.MissingMapping mapping : event.get()) { - String resourcePath = mapping.resourceLocation.getResourcePath().toLowerCase(); - if (mapping.type == GameRegistry.Type.BLOCK) { - if ("newblockname".equals(resourcePath)) { - mapping.remap(OSBlocks.myNewBlock); - } - } else if (mapping.type == GameRegistry.Type.ITEM) { - if ("newitemname".equals(resourcePath)) { - mapping.remap(OSItems.myNewItem); - } else if ("newblockname".equals(resourcePath)) { - mapping.remap(Item.getItemFromBlock(OSBlocks.myNewBlock)); - } - } - } - } - */ - - public static > T register(T object, String name) - { - return registerByFullName(object, OSRefs.MODID+":"+name); - } - public static > T registerByFullName(T object, String name) - { - object.setRegistryName(new ResourceLocation(name)); - OSLogger.debug("[OrbSAT] Register item "+object.getRegistryName()); - return GameRegistry.register(object); - } - public static Block registerBlockByFullName(Block block, ItemBlock itemBlock, String name) - { - block = registerByFullName(block, name); - registerByFullName(itemBlock, name); - return block; - } - public static Block registerBlockByFullName(Block block, Class itemBlock, String name) - { - try{ - return registerBlockByFullName(block, itemBlock.getConstructor(Block.class).newInstance(block), name); - }catch(Exception e){e.printStackTrace();} - return null; - } - public static Block registerBlock(Block block, Class itemBlock, String name) - { - try{ - return registerBlockByFullName(block, itemBlock.getConstructor(Block.class).newInstance(block), OSRefs.MODID+":"+name); - }catch(Exception e){e.printStackTrace();} - return null; - } - - public static CreativeTabs creativeTab = new CreativeTabs(OSRefs.MODID) - { - @Override - public Item getTabIconItem() - { - return null; - } - - @Override - public ItemStack getIconItemStack() - { - return new ItemStack(OSItems.componentsItem,1,1); - } - }; -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/block/BlockOSBase.java b/src/main/java/fr/jackcartersmith/orbsat/block/BlockOSBase.java deleted file mode 100644 index 31a8c6a..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/block/BlockOSBase.java +++ /dev/null @@ -1,536 +0,0 @@ -package fr.jackcartersmith.orbsat.block; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; - -import com.google.common.collect.Sets; - -import fr.jackcartersmith.orbsat.OSRefs; -import fr.jackcartersmith.orbsat.OrbitalSatellite; -import fr.jackcartersmith.orbsat.block.OSBlockInterface.IOSMetaBlock; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.statemap.StateMapperBase; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.Explosion; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.property.ExtendedBlockState; -import net.minecraftforge.common.property.IUnlistedProperty; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockOSBase & BlockOSBase.IBlockEnum> extends Block implements IOSMetaBlock{ - protected static IProperty[] tempProperties; - protected static IUnlistedProperty[] tempUnlistedProperties; - - public final String name; - public final PropertyEnum property; - public final IProperty[] additionalProperties; - public final IUnlistedProperty[] additionalUnlistedProperties; - public final E[] enumValues; - boolean[] isMetaHidden; - boolean[] hasFlavour; - protected Set renderLayers = Sets.newHashSet(BlockRenderLayer.SOLID); - protected Set[] metaRenderLayers; - protected Map metaLightOpacities = new HashMap<>(); - protected Map metaResistances = new HashMap<>(); - protected boolean[] metaNotNormalBlock; - private boolean opaqueCube = false; - - public BlockOSBase(String name, Material material, PropertyEnum mainProperty, Class itemBlock, Object... additionalProperties) - { - super(setTempProperties(material, mainProperty, additionalProperties)); - this.name = name; - this.property = mainProperty; - this.enumValues = mainProperty.getValueClass().getEnumConstants(); - this.isMetaHidden = new boolean[this.enumValues.length]; - this.hasFlavour = new boolean[this.enumValues.length]; - this.metaRenderLayers = new Set[this.enumValues.length]; - - ArrayList propList = new ArrayList(); - ArrayList unlistedPropList = new ArrayList(); - for(Object o : additionalProperties) - { - if(o instanceof IProperty) - propList.add((IProperty)o); - if(o instanceof IProperty[]) - for(IProperty p : ((IProperty[])o)) - propList.add(p); - if(o instanceof IUnlistedProperty) - unlistedPropList.add((IUnlistedProperty)o); - if(o instanceof IUnlistedProperty[]) - for(IUnlistedProperty p : ((IUnlistedProperty[])o)) - unlistedPropList.add(p); - } - this.additionalProperties = propList.toArray(new IProperty[propList.size()]); - this.additionalUnlistedProperties = unlistedPropList.toArray(new IUnlistedProperty[unlistedPropList.size()]); - this.setDefaultState(getInitDefaultState()); - String registryName = createRegistryName(); - this.setUnlocalizedName(registryName.replace(':', '.')); - this.setCreativeTab(OrbitalSatellite.creativeTab); - this.adjustSound(); - OrbitalSatellite.registerBlockByFullName(this, itemBlock, registryName); - OSRefs.registeredOSBlocks.add(this); - lightOpacity = 255; - } - - @Override - public String getOSBlockName() - { - return this.name; - } - @Override - public Enum[] getMetaEnums() - { - return enumValues; - } - @Override - public IBlockState getInventoryState(int meta) - { - IBlockState state = this.blockState.getBaseState().withProperty(this.property, enumValues[meta]); - // for(int i=0; i getMetaProperty() - { - return this.property; - } - @Override - public boolean useCustomStateMapper() - { - return false; - } - @Override - public String getCustomStateMapping(int meta, boolean itemBlock) - { - return null; - } - @Override - @SideOnly(Side.CLIENT) - public StateMapperBase getCustomMapper() - { - return null; - } - - @Override - public boolean appendPropertiesToState() - { - return true; - } - - public String getUnlocalizedName(ItemStack stack) - { - String subName = getStateFromMeta(stack.getItemDamage()).getValue(property).toString().toLowerCase(Locale.US); - return super.getUnlocalizedName() + "." + subName; - } - - protected static Material setTempProperties(Material material, PropertyEnum property, Object... additionalProperties) - { - ArrayList propList = new ArrayList(); - ArrayList unlistedPropList = new ArrayList(); - propList.add(property); - for(Object o : additionalProperties) - { - if(o instanceof IProperty) - propList.add((IProperty)o); - if(o instanceof IProperty[]) - for(IProperty p : ((IProperty[])o)) - propList.add(p); - if(o instanceof IUnlistedProperty) - unlistedPropList.add((IUnlistedProperty)o); - if(o instanceof IUnlistedProperty[]) - for(IUnlistedProperty p : ((IUnlistedProperty[])o)) - unlistedPropList.add(p); - } - tempProperties = propList.toArray(new IProperty[propList.size()]); - tempUnlistedProperties = unlistedPropList.toArray(new IUnlistedProperty[unlistedPropList.size()]); - return material; - } - protected static Object[] combineProperties(Object[] currentProperties, Object... addedProperties) - { - Object[] array = new Object[currentProperties.length + addedProperties.length]; - for(int i=0; i=0 && i=0 && i=0 && i setBlockLayer(BlockRenderLayer... layer) - { - this.renderLayers = Sets.newHashSet(layer); - return this; - } - public BlockOSBase setMetaBlockLayer(int meta, BlockRenderLayer... layer) - { - this.metaRenderLayers[Math.max(0, Math.min(meta, this.metaRenderLayers.length-1))] = Sets.newHashSet(layer); - return this; - } - @Override - public boolean canRenderInLayer(BlockRenderLayer layer) - { - if(cachedTileRequestState!=null) - { - int meta = this.getMetaFromState(cachedTileRequestState); - if(meta>=0 && meta setMetaLightOpacity(int meta, int opacity) - { - metaLightOpacities.put(meta, opacity); - return this; - } - @Override - public int getLightOpacity(IBlockState state, IBlockAccess w, BlockPos pos) - { - int meta = getMetaFromState(state); - if(metaLightOpacities.containsKey(meta)) - return metaLightOpacities.get(meta); - return super.getLightOpacity(state,w,pos); - } - - public BlockOSBase setMetaExplosionResistance(int meta, int resistance) - { - metaResistances.put(meta, resistance); - return this; - } - @Override - public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion) - { - int meta = getMetaFromState(world.getBlockState(pos)); - if(metaResistances.containsKey(meta)) - return metaResistances.get(meta); - return super.getExplosionResistance(world, pos, exploder, explosion); - } - - public BlockOSBase setNotNormalBlock(int meta) - { - if(metaNotNormalBlock == null) - metaNotNormalBlock = new boolean[this.enumValues.length]; - metaNotNormalBlock[meta] = true; - return this; - } - public BlockOSBase setAllNotNormalBlock() - { - if(metaNotNormalBlock == null) - metaNotNormalBlock = new boolean[this.enumValues.length]; - for(int i = 0; i < metaNotNormalBlock.length; i++) - metaNotNormalBlock[i] = true; - return this; - } - protected boolean normalBlockCheck(IBlockState state) - { - if(metaNotNormalBlock == null) - return true; - int meta = getMetaFromState(state); - return (meta < 0 || meta >= metaNotNormalBlock.length) || !metaNotNormalBlock[meta]; - } - @Override - public boolean isFullBlock(IBlockState state) - { - return normalBlockCheck(state); - } - @Override - public boolean isFullCube(IBlockState state) - { - return normalBlockCheck(state); - } - @Override - public boolean isOpaqueCube(IBlockState state) - { - return normalBlockCheck(state); - } - - @Override - public boolean isVisuallyOpaque() - { - if(metaNotNormalBlock == null) - return true; - int majority = 0; - for(boolean b : metaNotNormalBlock) - if(b) - majority++; - return majority0) - return new ExtendedBlockState(this, array, additionalUnlistedProperties); - return new BlockStateContainer(this, array); - } - protected IBlockState getInitDefaultState() - { - IBlockState state = this.blockState.getBaseState().withProperty(this.property, enumValues[0]); - for(int i=0; i> IBlockState applyProperty(IBlockState in, IProperty prop, Object val) - { - return in.withProperty(prop, (V)val); - } - - public void onIEBlockPlacedBy(World world, BlockPos pos, IBlockState state, EnumFacing side, float hitX, float hitY, float hitZ, EntityLivingBase placer, ItemStack stack) - { - } - public boolean canIEBlockBePlaced(World world, BlockPos pos, IBlockState newState, EnumFacing side, float hitX, float hitY, float hitZ, EntityPlayer player, ItemStack stack) - { - return true; - } - - @Override - protected BlockStateContainer createBlockState() - { - if(this.property!=null) - return createNotTempBlockState(); - if(tempUnlistedProperties.length>0) - return new ExtendedBlockState(this, tempProperties, tempUnlistedProperties); - return new BlockStateContainer(this, tempProperties); - } - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - super.onBlockPlacedBy(worldIn, pos, state, placer, stack); - } - @Override - public int getMetaFromState(IBlockState state) - { - if(state==null || !this.equals(state.getBlock())) - return 0; - return state.getValue(this.property).getMeta(); - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) - { - for(int i=0; i=enumValues.length) - meta = 0; - return enumValues[meta]; - } - - @Override - public int damageDropped(IBlockState state) - { - return getMetaFromState(state); - } - @SideOnly(Side.CLIENT) - @Override - public void getSubBlocks(Item item, CreativeTabs tab, List list) - { - for(E type : this.enumValues) - if(type.listForCreative() && !this.isMetaHidden[type.getMeta()]) - list.add(new ItemStack(this, 1, type.getMeta())); - } - - void adjustSound() - { - if(this.blockMaterial==Material.ANVIL) - this.blockSoundType = SoundType.ANVIL; - else if(this.blockMaterial==Material.CARPET||this.blockMaterial==Material.CLOTH) - this.blockSoundType = SoundType.CLOTH; - else if(this.blockMaterial==Material.GLASS||this.blockMaterial==Material.ICE) - this.blockSoundType = SoundType.GLASS; - else if(this.blockMaterial==Material.GRASS||this.blockMaterial==Material.TNT||this.blockMaterial==Material.PLANTS||this.blockMaterial==Material.VINE) - this.blockSoundType = SoundType.PLANT; - else if(this.blockMaterial==Material.GROUND) - this.blockSoundType = SoundType.GROUND; - else if(this.blockMaterial==Material.IRON) - this.blockSoundType = SoundType.METAL; - else if(this.blockMaterial==Material.SAND) - this.blockSoundType = SoundType.SAND; - else if(this.blockMaterial==Material.SNOW) - this.blockSoundType = SoundType.SNOW; - else if(this.blockMaterial==Material.ROCK) - this.blockSoundType = SoundType.STONE; - else if(this.blockMaterial==Material.WOOD||this.blockMaterial==Material.CACTUS) - this.blockSoundType = SoundType.WOOD; - } - - @Override - public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int eventID, int eventParam) - { - if (worldIn.isRemote&&eventID==255) - { - worldIn.notifyBlockUpdate(pos,state,state,3); - return true; - } - return super.eventReceived(state, worldIn, pos, eventID, eventParam); - } - - public boolean allowHammerHarvest(IBlockState blockState) - { - return false; - } - public boolean allowWirecutterHarvest(IBlockState blockState) - { - return false; - } - public boolean isOpaqueCube() - { - return opaqueCube; - } - public BlockOSBase setOpaque(boolean isOpaque) - { - opaqueCube = isOpaque; - fullBlock = isOpaque; - return this; - } - - /* - @Override - public boolean isToolEffective(String type, IBlockState state) - { - if(allowHammerHarvest(state) && type.equals(Lib.TOOL_HAMMER)) - return true; - if(allowWirecutterHarvest(state) && type.equals(Lib.TOOL_WIRECUTTER)) - return true; - return super.isToolEffective(type, state); - } - */ - public String createRegistryName() - { - return OSRefs.MODID+":"+name; - } - - - public interface IBlockEnum extends IStringSerializable - { - int getMeta(); - boolean listForCreative(); - } - public abstract static class IELadderBlock & IBlockEnum> extends BlockOSBase - { - public IELadderBlock(String name, Material material, PropertyEnum mainProperty, - Class itemBlock, Object... additionalProperties) - { - super(name, material, mainProperty, itemBlock, additionalProperties); - } - - @Override - public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) - { - super.onEntityCollidedWithBlock(worldIn, pos, state, entityIn); - if (entityIn instanceof EntityLivingBase&&!((EntityLivingBase) entityIn).isOnLadder()&&isLadder(state, worldIn, pos, (EntityLivingBase)entityIn)) - { - float f5 = 0.15F; - if (entityIn.motionX < -f5) - entityIn.motionX = -f5; - if (entityIn.motionX > f5) - entityIn.motionX = f5; - if (entityIn.motionZ < -f5) - entityIn.motionZ = -f5; - if (entityIn.motionZ > f5) - entityIn.motionZ = f5; - - entityIn.fallDistance = 0.0F; - if (entityIn.motionY < -0.15D) - entityIn.motionY = -0.15D; - - if(entityIn.motionY<0 && entityIn instanceof EntityPlayer && entityIn.isSneaking()) - { - entityIn.motionY=.05; - return; - } - if(entityIn.isCollidedHorizontally) - entityIn.motionY=.2; - } - } - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/block/BlockType_Devices.java b/src/main/java/fr/jackcartersmith/orbsat/block/BlockType_Devices.java deleted file mode 100644 index ecca28d..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/block/BlockType_Devices.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.jackcartersmith.orbsat.block; - -import java.util.Locale; - -import net.minecraft.util.IStringSerializable; - -public enum BlockType_Devices implements IStringSerializable, BlockOSBase.IBlockEnum{ - SATELLITE_LAUNCHER, - SATELLITE_CENTRALE, - SATELLITE_ASSEMBLER; - - @Override - public String getName() { - return this.toString().toLowerCase(Locale.ENGLISH); - } - - @Override - public int getMeta() - { - return ordinal(); - } - @Override - public boolean listForCreative() - { - return ordinal()!=12; - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/block/ItemBlockOSBase.java b/src/main/java/fr/jackcartersmith/orbsat/block/ItemBlockOSBase.java deleted file mode 100644 index 3463d2a..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/block/ItemBlockOSBase.java +++ /dev/null @@ -1,143 +0,0 @@ -package fr.jackcartersmith.orbsat.block; - -import java.util.List; -import java.util.Locale; - -import fr.jackcartersmith.orbsat.OSRefs; -import fr.jackcartersmith.orbsat.client.ClientProxy; -import fr.jackcartersmith.orbsat.common.util.ItemNBTHelper; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.resources.I18n; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemBlockOSBase extends ItemBlock{ - public ItemBlockOSBase(Block b) - { - super(b); - if(((BlockOSBase)b).enumValues.length>1) - setHasSubtypes(true); - } - - @Override - public int getMetadata (int damageValue) - { - return damageValue; - } - @Override - public void getSubItems(Item item, CreativeTabs tab, List itemList) - { - this.block.getSubBlocks(item, tab, itemList); - } - @Override - public String getUnlocalizedName(ItemStack stack) - { - return ((BlockOSBase) this.block).getUnlocalizedName(stack); - } - - /* - @Override - @SideOnly(Side.CLIENT) - public FontRenderer getFontRenderer(ItemStack stack) - { - return ClientProxy.itemFont; - } - */ - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advInfo) - { - if(((BlockOSBase)block).hasFlavour(stack)) - { - String subName = ((BlockOSBase)this.block).getStateFromMeta(stack.getItemDamage()).getValue(((BlockOSBase)this.block).property).toString().toLowerCase(Locale.US); - String flavourKey = OSRefs.DESC_FLAVOUR+((BlockOSBase)this.block).name+"."+subName; - list.add(TextFormatting.GRAY.toString()+ I18n.format(flavourKey)); - } - super.addInformation(stack, player, list, advInfo); - if(ItemNBTHelper.hasKey(stack, "energyStorage")) - list.add(I18n.format("desc.immersiveengineering.info.energyStored", ItemNBTHelper.getInt(stack, "energyStorage"))); - if(ItemNBTHelper.hasKey(stack, "tank")) - { - FluidStack fs = FluidStack.loadFluidStackFromNBT(ItemNBTHelper.getTagCompound(stack, "tank")); - if(fs!=null) - list.add(fs.getLocalizedName()+": "+fs.amount+"mB"); - } - } - - - @Override - public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState) - { - if(!((BlockOSBase)this.block).canIEBlockBePlaced(world, pos, newState, side, hitX,hitY,hitZ, player, stack)) - return false; - boolean ret = super.placeBlockAt(stack, player, world, pos, side, hitX, hitY, hitZ, newState); - if(ret) - { - ((BlockOSBase)this.block).onIEBlockPlacedBy(world, pos, newState, side, hitX,hitY,hitZ, player, stack); - } - return ret; - } - @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) - { - IBlockState iblockstate = world.getBlockState(pos); - Block block = iblockstate.getBlock(); - if (!block.isReplaceable(world, pos)) - pos = pos.offset(side); - if(stack.stackSize > 0 && player.canPlayerEdit(pos, side, stack) && canBlockBePlaced(world, pos, side, stack)) - { - int i = this.getMetadata(stack.getMetadata()); - IBlockState iblockstate1 = this.block.onBlockPlaced(world, pos, side, hitX, hitY, hitZ, i, player); - if(placeBlockAt(stack, player, world, pos, side, hitX, hitY, hitZ, iblockstate1)) - { - SoundType soundtype = world.getBlockState(pos).getBlock().getSoundType(world.getBlockState(pos), world, pos, player); - world.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); - if(!player.capabilities.isCreativeMode) - --stack.stackSize; - } - return EnumActionResult.SUCCESS; - } - return EnumActionResult.FAIL; - } - @Override - public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side, EntityPlayer player, ItemStack stack) - { - Block block = worldIn.getBlockState(pos).getBlock(); - - if(block == Blocks.SNOW_LAYER && block.isReplaceable(worldIn, pos)) - { - side = EnumFacing.UP; - } else if(!block.isReplaceable(worldIn, pos)) - { - pos = pos.offset(side); - } - - return canBlockBePlaced(worldIn, pos, side, stack); - } - private boolean canBlockBePlaced(World w, BlockPos pos, EnumFacing side, ItemStack stack) - { - BlockOSBase blockIn = (BlockOSBase) this.block; - Block block = w.getBlockState(pos).getBlock(); - AxisAlignedBB axisalignedbb = blockIn.getCollisionBoundingBox( blockIn.getStateFromMeta(stack.getItemDamage()), w, pos); - if (axisalignedbb != null && !w.checkNoEntityCollision(axisalignedbb.offset(pos), null)) return false; - return block.isReplaceable(w, pos) && blockIn.canReplace(w, pos, side, stack); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/block/OSBlockInterface.java b/src/main/java/fr/jackcartersmith/orbsat/block/OSBlockInterface.java deleted file mode 100644 index 84c3e16..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/block/OSBlockInterface.java +++ /dev/null @@ -1,280 +0,0 @@ -package fr.jackcartersmith.orbsat.block; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; - -import javax.annotation.Nullable; - -import fr.jackcartersmith.orbsat.OSEnums; -import fr.jackcartersmith.orbsat.OSProperties.PropertyBoolInverted; -import net.minecraft.block.BlockPistonBase; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.statemap.StateMapperBase; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.EnumFacing.Axis; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.OBJModel.OBJState; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class OSBlockInterface { - public interface IOSMetaBlock - { - String getOSBlockName(); - IProperty getMetaProperty(); - Enum[] getMetaEnums(); - IBlockState getInventoryState(int meta); - boolean useCustomStateMapper(); - String getCustomStateMapping(int meta, boolean itemBlock); - @SideOnly(Side.CLIENT) - StateMapperBase getCustomMapper(); - - boolean appendPropertiesToState(); - } - - public interface IAttachedIntegerProperies - { - String[] getIntPropertyNames(); - PropertyInteger getIntProperty(String name); - int getIntPropertyValue(String name); - } - - public interface IUsesBooleanProperty - { - PropertyBoolInverted getBoolProperty(Class inf); - } - - public interface IBlockOverlayText - { - String[] getOverlayText(EntityPlayer player, RayTraceResult mop, boolean hammer); - boolean useNixieFont(EntityPlayer player, RayTraceResult mop); - } - - public interface ISoundTile - { - boolean shoudlPlaySound(String sound); - } - - public interface ISpawnInterdiction - { - double getInterdictionRangeSquared(); - } - - public interface IComparatorOverride - { - int getComparatorInputOverride(); - } - - public interface IRedstoneOutput - { - default int getWeakRSOutput(IBlockState state, EnumFacing side) - { - return getStrongRSOutput(state, side); - } - - int getStrongRSOutput(IBlockState state, EnumFacing side); - - boolean canConnectRedstone(IBlockState state, EnumFacing side); - } - - public interface ILightValue - { - int getLightValue(); - } - - public interface IColouredBlock - { - boolean hasCustomBlockColours(); - int getRenderColour(IBlockState state, @Nullable IBlockAccess worldIn, @Nullable BlockPos pos, int tintIndex); - } - public interface IColouredTile - { - int getRenderColour(int tintIndex); - } - - public interface IDirectionalTile - { - EnumFacing getFacing(); - void setFacing(EnumFacing facing); - /** - * @return 0 = side clicked, 1=piston behaviour, 2 = horizontal, 3 = vertical, 4 = x/z axis, 5 = horizontal based on quadrant - */ - int getFacingLimitation(); - default EnumFacing getFacingForPlacement(EntityLivingBase placer, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) - { - EnumFacing f = EnumFacing.DOWN; - int limit = getFacingLimitation(); - if(limit==0) - f = side; - else if(limit==1) - f = BlockPistonBase.getFacingFromEntity(pos, placer); - else if(limit==2) - f = EnumFacing.fromAngle(placer.rotationYaw); - else if(limit==3) - f = (side!=EnumFacing.DOWN&&(side==EnumFacing.UP||hitY<=.5))?EnumFacing.UP : EnumFacing.DOWN; - else if(limit==4) - { - f = EnumFacing.fromAngle(placer.rotationYaw); - if(f==EnumFacing.SOUTH || f==EnumFacing.WEST) - f = f.getOpposite(); - } else if(limit == 5) - { - if(side.getAxis() != Axis.Y) - f = side.getOpposite(); - else - { - float xFromMid = hitX - .5f; - float zFromMid = hitZ - .5f; - float max = Math.max(Math.abs(xFromMid), Math.abs(zFromMid)); - if(max == Math.abs(xFromMid)) - f = xFromMid < 0 ? EnumFacing.WEST : EnumFacing.EAST; - else - f = zFromMid < 0 ? EnumFacing.NORTH : EnumFacing.SOUTH; - } - } - return mirrorFacingOnPlacement(placer)?f.getOpposite():f; - } - boolean mirrorFacingOnPlacement(EntityLivingBase placer); - boolean canHammerRotate(EnumFacing side, float hitX, float hitY, float hitZ, EntityLivingBase entity); - boolean canRotate(EnumFacing axis); - default void afterRotation(EnumFacing oldDir, EnumFacing newDir){} - } - public interface IAdvancedDirectionalTile extends IDirectionalTile - { - void onDirectionalPlacement(EnumFacing side, float hitX, float hitY, float hitZ, EntityLivingBase placer); - } - - public interface IConfigurableSides - { - OSEnums.SideConfig getSideConfig(int side); - default boolean toggleSide(int side, EntityPlayer p) - { - toggleSide(side); - return true; - } - @Deprecated - default void toggleSide(int side) - {} - } - - public interface ITileDrop - { - ItemStack getTileDrop(EntityPlayer player, IBlockState state); - - void readOnPlacement(@Nullable EntityLivingBase placer, ItemStack stack); - - default boolean preventInventoryDrop() { return false; } - } - public interface IAdditionalDrops - { - Collection getExtraDrops(EntityPlayer player, IBlockState state); - } - - public interface IEntityProof - { - boolean canEntityDestroy(Entity entity); - } - - public interface IPlayerInteraction - { - boolean interact(EnumFacing side, EntityPlayer player, EnumHand hand, ItemStack heldItem, float hitX, float hitY, float hitZ); - } - - public interface IHammerInteraction - { - boolean hammerUseSide(EnumFacing side, EntityPlayer player, float hitX, float hitY, float hitZ); - } - - public interface IActiveState extends IUsesBooleanProperty - { - boolean getIsActive(); - } - - public interface IDualState extends IUsesBooleanProperty - { - boolean getIsSecondState(); - } - - public interface IMirrorAble extends IUsesBooleanProperty - { - boolean getIsMirrored(); - } - - public interface IBlockBounds - { - float[] getBlockBounds(); - } - public interface IAdvancedSelectionBounds extends IBlockBounds - { - List getAdvancedSelectionBounds(); - boolean isOverrideBox(AxisAlignedBB box, EntityPlayer player, RayTraceResult mop, ArrayList list); - } - public interface IAdvancedCollisionBounds extends IBlockBounds - { - List getAdvancedColisionBounds(); - } - - public interface IHasDummyBlocks - { - boolean isDummy(); - void placeDummies(BlockPos pos, IBlockState state, EnumFacing side, float hitX, float hitY, float hitZ); - void breakDummies(BlockPos pos, IBlockState state); - } - - public interface IHasObjProperty - { - ArrayList compileDisplayList(); - } - public interface IAdvancedHasObjProperty - { - OBJState getOBJState(); - } - public interface IDynamicTexture - { - @SideOnly(Side.CLIENT) - HashMap getTextureReplacements(); - } - - public interface IGuiTile - { - default boolean canOpenGui(EntityPlayer player) - { - return canOpenGui(); - } - boolean canOpenGui(); - int getGuiID(); - TileEntity getGuiMaster(); - - default void onGuiOpened(EntityPlayer player, boolean clientside) - { - } - } - - public interface IProcessTile - { - int[] getCurrentProcessesStep(); - int[] getCurrentProcessesMax(); - } - - public interface INeighbourChangeTile - { - void onNeighborBlockChange(BlockPos pos); - } - - public interface IPropertyPassthrough - { - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/client/ClientProxy.java b/src/main/java/fr/jackcartersmith/orbsat/client/ClientProxy.java deleted file mode 100644 index a90f359..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/client/ClientProxy.java +++ /dev/null @@ -1,114 +0,0 @@ -package fr.jackcartersmith.orbsat.client; - -import java.util.Locale; - -import fr.jackcartersmith.orbsat.OSRefs; -import fr.jackcartersmith.orbsat.block.OSBlockInterface.IOSMetaBlock; -import fr.jackcartersmith.orbsat.common.CommonProxy; -import fr.jackcartersmith.orbsat.item.ItemOSBase; -import fr.jackcartersmith.orbsat.models.obj.OSOBJLoader; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemMeshDefinition; -import net.minecraft.client.renderer.block.model.ModelBakery; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.client.model.ModelLoaderRegistry; -import net.minecraftforge.client.model.obj.OBJLoader; -import net.minecraftforge.fml.common.registry.GameData; - -public class ClientProxy extends CommonProxy{ - - @Override - public void preInit(){ - Minecraft.getMinecraft().getFramebuffer().enableStencil();//Enabling FBO stencils - ModelLoaderRegistry.registerLoader(OSOBJLoader.instance); - OBJLoader.INSTANCE.addDomain(OSRefs.MODID); - OSOBJLoader.instance.addDomain(OSRefs.MODID); - - for(Block block : OSRefs.registeredOSBlocks) - { - Item blockItem = Item.getItemFromBlock(block); - final ResourceLocation loc = GameData.getBlockRegistry().getNameForObject(block); - if(block instanceof IOSMetaBlock) - { - IOSMetaBlock ieMetaBlock = (IOSMetaBlock) block; - if(ieMetaBlock.useCustomStateMapper()) - ModelLoader.setCustomStateMapper(block, OSCustomStateMapper.getStateMapper(ieMetaBlock)); - ModelLoader.setCustomMeshDefinition(blockItem, new ItemMeshDefinition() - { - @Override - public ModelResourceLocation getModelLocation(ItemStack stack) - { - return new ModelResourceLocation(loc, "inventory"); - } - }); - for(int meta = 0; meta < ieMetaBlock.getMetaEnums().length; meta++) - { - String location = loc.toString(); - String prop = ieMetaBlock.appendPropertiesToState() ? ("inventory," + ieMetaBlock.getMetaProperty().getName() + "=" + ieMetaBlock.getMetaEnums()[meta].toString().toLowerCase(Locale.US)) : null; - if(ieMetaBlock.useCustomStateMapper()) - { - String custom = ieMetaBlock.getCustomStateMapping(meta, true); - if(custom != null) - location += "_" + custom; - } - try - { - ModelLoader.setCustomModelResourceLocation(blockItem, meta, new ModelResourceLocation(location, prop)); - } catch(NullPointerException npe) - { - throw new RuntimeException("WELP! apparently " + ieMetaBlock + " lacks an item!", npe); - } - } - } else - ModelLoader.setCustomModelResourceLocation(blockItem, 0, new ModelResourceLocation(loc, "inventory")); - } - - for(Item item : OSRefs.registeredOSItems) - { - if(item instanceof Item) - { - ItemOSBase ieMetaItem = (ItemOSBase) item; - if(ieMetaItem.registerSubModels && ieMetaItem.getSubNames() != null && ieMetaItem.getSubNames().length > 0) - { - for(int meta = 0; meta < ieMetaItem.getSubNames().length; meta++) - { - ResourceLocation loc = new ResourceLocation("orbsat", ieMetaItem.itemName + "/" + ieMetaItem.getSubNames()[meta]); - ModelBakery.registerItemVariants(ieMetaItem, loc); - ModelLoader.setCustomModelResourceLocation(ieMetaItem, meta, new ModelResourceLocation(loc, "inventory")); - } - } else - { - final ResourceLocation loc = new ResourceLocation("orbsat", ieMetaItem.itemName); - ModelBakery.registerItemVariants(ieMetaItem, loc); - ModelLoader.setCustomMeshDefinition(ieMetaItem, new ItemMeshDefinition() - { - @Override - public ModelResourceLocation getModelLocation(ItemStack stack) - { - return new ModelResourceLocation(loc, "inventory"); - } - }); - } - } - else - { - final ResourceLocation loc = GameData.getItemRegistry().getNameForObject(item); - ModelBakery.registerItemVariants(item, loc); - ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() - { - @Override - public ModelResourceLocation getModelLocation(ItemStack stack) - { - return new ModelResourceLocation(loc, "inventory"); - } - }); - } - } - } - -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/client/OSCustomStateMapper.java b/src/main/java/fr/jackcartersmith/orbsat/client/OSCustomStateMapper.java deleted file mode 100644 index 3dcd20b..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/client/OSCustomStateMapper.java +++ /dev/null @@ -1,46 +0,0 @@ -package fr.jackcartersmith.orbsat.client; - -import java.util.HashMap; - -import fr.jackcartersmith.orbsat.block.OSBlockInterface.IOSMetaBlock; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.client.renderer.block.statemap.StateMapperBase; -import net.minecraft.util.ResourceLocation; - -public class OSCustomStateMapper extends StateMapperBase{ - public static HashMap stateMappers = new HashMap<>(); - public static StateMapperBase getStateMapper(IOSMetaBlock metaBlock) - { - String key = metaBlock.getOSBlockName(); - StateMapperBase mapper = stateMappers.get(key); - if(mapper==null) - { - mapper = metaBlock.getCustomMapper(); - if(mapper==null) - mapper = new OSCustomStateMapper(); - stateMappers.put(key, mapper); - } - return mapper; - } - - @Override - protected ModelResourceLocation getModelResourceLocation(IBlockState state) - { - try{ - ResourceLocation rl = Block.REGISTRY.getNameForObject(state.getBlock()); - IOSMetaBlock metaBlock = (IOSMetaBlock)state.getBlock(); - String custom = metaBlock.getCustomStateMapping(state.getBlock().getMetaFromState(state), false); - if(custom!=null) - rl = new ResourceLocation(rl.toString()+"_"+custom); - String prop = metaBlock.appendPropertiesToState()?this.getPropertyString(state.getProperties()):null; - return new ModelResourceLocation(rl, prop); - }catch(Exception e) - { - e.printStackTrace(); - ResourceLocation rl = Block.REGISTRY.getNameForObject(state.getBlock()); - return new ModelResourceLocation(rl, this.getPropertyString(state.getProperties())); - } - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/CommonProxy.java b/src/main/java/fr/jackcartersmith/orbsat/common/CommonProxy.java deleted file mode 100644 index a1bb2ab..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/CommonProxy.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.jackcartersmith.orbsat.common; - -public class CommonProxy{ - - public void registerRender(){ - - } - - public void preInit() {} - -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/Config.java b/src/main/java/fr/jackcartersmith/orbsat/common/Config.java deleted file mode 100644 index 952fa24..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/Config.java +++ /dev/null @@ -1,369 +0,0 @@ -package fr.jackcartersmith.orbsat.common; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.lang.reflect.Field; -import java.util.Calendar; -import java.util.HashMap; -import java.util.Map; - -import fr.jackcartersmith.orbsat.OSRefs; -import fr.jackcartersmith.orbsat.common.Config.OSConfig.Machines; -import fr.jackcartersmith.orbsat.common.util.OSLogger; -import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Config.Comment; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; - -public class Config { - public static HashMap manual_bool = new HashMap(); - public static HashMap manual_int = new HashMap(); - public static HashMap manual_intA = new HashMap(); - public static HashMap manual_double = new HashMap(); - public static HashMap manual_doubleA = new HashMap(); - - public static boolean seaonal_festive = false; - - @net.minecraftforge.common.config.Config(modid=OSRefs.MODID) - public static class OSConfig - { - //Wire Stuff - @Comment({"Drop connections with non-existing endpoints when loading the world. Use with care and backups and only when suspecting corrupted data.", "This option will check and load all connection endpoints and may slow down the world loading process."}) - public static boolean validateConnections = false; - @Comment({"The transfer rates in Flux/t for the wire tiers (copper, electrum, HV, Structural Rope, Cable & Redstone(no transfer) )"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] wireTransferRate = new int[]{2048, 8192, 32768, 0, 0, 0}; - @Comment({"The percentage of power lost every 16 blocks of distance for the wire tiers (copper, electrum, HV, Structural Rope, Cable & Redstone(no transfer) )"}) - public static double[] wireLossRatio = new double[]{.05, .025, .025, 1, 1, 1}; - @Comment({"The RGB colourate of the wires."}) - public static int[] wireColouration = new int[]{0xb36c3f, 0xeda045, 0x6f6f6f, 0x967e6d, 0x6f6f6f, 0xff2f2f}; - @Comment({"The maximum length wire can have. Copper and Electrum should be similar, Steel is meant for long range transport, Structural Rope & Cables are purely decorational"}) - public static int[] wireLength = new int[]{16, 16, 32, 32, 32, 32}; - - @Comment({"By default all devices that accept cables have increased renderbounds to show cables even if the block itself is not in view.", "Disabling this reduces them to their minimum sizes, which might improve FPS on low-power PCs"}) - //TODO this is for TESR wires. Remove? - public static boolean increasedRenderboxes = true; - @Comment({"Disables most lighting code for certain models that are rendered dynamically (TESR). May improve FPS.", "Affects turrets and garden cloches"}) - public static boolean disableFancyTESR = false; - @Comment({"Support for colourblind people, gives a text-based output on capacitor sides"}) - public static boolean colourblindSupport = false; - @Comment({"Set this to false to disable the super awesome looking nixie tube front for the voltmeter and other things"}) - public static boolean nixietubeFont = true; - @Comment({"Set this to false to disable the manual's forced change of GUI scale"}) - public static boolean adjustManualScale = false; - @Comment({"Set this to true if you suffer from bad eyesight. The Engineer's manual will be switched to a bold and darker text to improve readability.", "Note that this may lead to a break of formatting and have text go off the page in some instances. This is unavoidable."}) - public static boolean badEyesight = false; - @Comment({"Controls if item tooltips should contain the OreDictionary names of items. These tooltips are only visible in advanced tooltip mod (F3+H)"}) - public static boolean oreTooltips = true; - @Comment({"Increase the distance at which certain TileEntities (specifically windmills) are still visible. This is a modifier, so set it to 1 for default render distance, to 2 for doubled distance and so on."}) - public static double increasedTileRenderdistance = 1.5; - @Comment({"A list of preferred Mod IDs that results of IE processes should stem from, aka which mod you want the copper to come from.", "This affects the ores dug by the excavator, as well as those crushing recipes that don't have associated IE items. This list is in oreder of priority."}) - public static String[] preferredOres = new String[]{OSRefs.MODID}; - @Comment({"Set this to false to hide the update news in the manual"}) - public static boolean showUpdateNews = true; - @Comment({"Set this to false to stop the IE villager house from spawning"}) - public static boolean villagerHouse = true; - @Comment({"Set this to false to remove IE villagers from the game"}) - public static boolean enableVillagers = true; - @Comment({"The weight that hempseeds have when breaking tall grass. 5 by default, set to 0 to disable drops"}) - public static int hempSeedWeight = 5; - - public static Machines machines = new Machines(); - public static Ores ores = new Ores(); - public static Tools tools = new Tools(); - - - public static class Machines - { - //Connectors - @Comment({"In- and output rates of LV,MV and HV Wire Conenctors. This is independant of the transferrate of the wires."}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] wireConnectorInput = new int[]{256, 1024, 4096}; - //Capacitors - @Comment({"The maximum amount of Flux that can be stored in a low-voltage capacitor"}) - public static int capacitorLV_storage = 100000; - @Comment({"The maximum amount of Flux that can be input into a low-voltage capacitor (by IE net or other means)"}) - public static int capacitorLV_input = 256; - @Comment({"The maximum amount of Flux that can be output from a low-voltage capacitor (by IE net or other means)"}) - public static int capacitorLV_output = 256; - @Comment({"The maximum amount of Flux that can be stored in a medium-voltage capacitor"}) - public static int capacitorMV_storage = 1000000; - @Comment({"The maximum amount of Flux that can be input into a medium-voltage capacitor (by IE net or other means)"}) - public static int capacitorMV_input = 1024; - @Comment({"The maximum amount of Flux that can be output from a medium-voltage capacitor (by IE net or other means)"}) - public static int capacitorMV_output = 1024; - @Comment({"The maximum amount of Flux that can be stored in a high-voltage capacitor"}) - public static int capacitorHV_storage = 4000000; - @Comment({"The maximum amount of Flux that can be input into a high-voltage capacitor (by IE net or other means)"}) - public static int capacitorHV_input = 4096; - @Comment({"The maximum amount of Flux that can be output from a high-voltage capacitor (by IE net or other means)"}) - public static int capacitorHV_output = 4096; - - //Generators - @Comment({"The base Flux that is output by the dynamo. This will be modified by the rotation modifier of the attached water- or windmill"}) - public static double dynamo_output = 3d; - @Comment({"Output modifier for the energy created by the Thermoelectric Generator"}) - public static double thermoelectric_output = 1d; - @Comment({"The Flux that will be output by the lightning rod when it is struck"}) - public static int lightning_output = 4 * 4000000; - @Comment({"The Flux per tick that the Diesel Generator will output. The burn time of the fuel determines the total output"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int dieselGen_output = 4096; - - //Simple Machines - @Comment({"The Flux per tick consumed to add one heat to a furnace. Creates up to 4 heat in the startup time and then 1 heat per tick to keep it running"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int heater_consumption = 8; - @Comment({"The Flux per tick consumed to double the speed of the furnace. Only happens if furnace is at maximum heat."}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int heater_speedupConsumption = 24; - @Comment({"The Flux per tick the Blast Furnace Preheater will consume to speed up the Blast Furnace"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int preheater_consumption = 32; - @Comment({"The length in ticks it takes for the Core Sample Drill to figure out which mineral is found in a chunk"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int coredrill_time = 200; - @Comment({"The Flux per tick consumed by the Core Sample Drill"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int coredrill_consumption = 40; - @Comment({"The Flux the Fluid Pump will consume to pick up a fluid block in the world"}) - public static int pump_consumption = 250; - @Comment({"The Flux the Fluid Pump will consume pressurize+accellerate fluids, increasing the transferrate"}) - public static int pump_consumption_accelerate = 5; - @Comment({"Set this to false to disable the fluid pump being able to draw infinite water from sources"}) - @Mapped(mapClass = Config.class, mapName = "manual_bool") - public static boolean pump_infiniteWater = true; - @Comment({"If this is set to true (default) the pump will replace fluids it picks up with cobblestone in order to reduce lag caused by flowing fluids."}) - @Mapped(mapClass = Config.class, mapName = "manual_bool") - public static boolean pump_placeCobble = true; - @Comment({"The Flux per tick the Charging Station can insert into an item"}) - public static int charger_consumption = 256; - @Comment({"The Flux per tick the Tesla Coil will consume, simply by being active"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int teslacoil_consumption = 256; - @Comment({"The amount of Flux the Tesla Coil will consume when shocking an entity"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int teslacoil_consumption_active = 512; - @Comment({"The amount of damage the Tesla Coil will do when shocking an entity"}) - public static float teslacoil_damage = 6; - @Comment({"The Flux per tick any turret consumes to monitor the area"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int turret_consumption = 64; - @Comment({"The Flux per tick the chemthrower turret consumes to shoot"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int turret_chem_consumption = 32; - @Comment({"The Flux per tick the gun turret consumes to shoot"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int turret_gun_consumption = 32; - @Comment({"The Flux per tick the belljar consumes to grow plants"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int belljar_consumption = 8; - @Comment({"The amount of ticks one dose of fertilizer lasts in the belljar"}) - public static int belljar_fertilizer = 6000; - @Comment({"The amount of fluid the belljar uses per dose of fertilizer"}) - public static int belljar_fluid = 250; - - //Lights - @Comment({"Set this to false to disable the mob-spawn prevention of the Powered Lantern"}) - public static boolean lantern_spawnPrevent = true; - @Comment({"How much Flux the powered lantern draws per tick"}) - public static int lantern_energyDraw = 1; - @Comment({"How much Flux the powered lantern can hold (should be greater than the power draw)"}) - public static int lantern_maximumStorage = 10; - @Comment({"Set this to false to disable the mob-spawn prevention of the Floodlight"}) - public static boolean floodlight_spawnPrevent = true; - @Comment({"How much Flux the floodlight draws per tick"}) - public static int floodlight_energyDraw = 5; - @Comment({"How much Flux the floodlight can hold (must be at least 10x the power draw)"}) - public static int floodlight_maximumStorage = 80; - - - //Multiblock Recipes - @Comment({"A modifier to apply to the energy costs of every MetalPress recipe"}) - public static float metalPress_energyModifier = 1; - @Comment({"A modifier to apply to the time of every MetalPress recipe"}) - public static float metalPress_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Crusher recipe"}) - public static float crusher_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Crusher recipe"}) - public static float crusher_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Squeezer recipe"}) - public static float squeezer_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Squeezer recipe"}) - public static float squeezer_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Fermenter recipe"}) - public static float fermenter_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Fermenter recipe"}) - public static float fermenter_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Refinery recipe"}) - public static float refinery_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Refinery recipe. Can't be lower than 1"}) - public static float refinery_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Arc Furnace recipe"}) - public static float arcFurnace_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Arc Furnace recipe"}) - public static float arcFurnace_timeModifier = 1; - @Comment({"The maximum amount of damage Graphite Electrodes can take. While the furnace is working, electrodes sustain 1 damage per tick, so this is effectively the lifetime in ticks. The default value of 96000 makes them last for 8 consecutive ingame days"}) - public static int arcfurnace_electrodeDamage = 96000; - @Comment({"Set this to true to make the blueprint for graphite electrodes craftable in addition to villager/dungeon loot"}) - @Mapped(mapClass = Config.class, mapName = "manual_bool") - public static boolean arcfurnace_electrodeCrafting = false; - @Comment({"Set this to false to disable the Arc Furnace's recycling of armors and tools"}) - public static boolean arcfurnace_recycle = true; - @Comment({"A modifier to apply to the energy costs of every Automatic Workbench recipe"}) - public static float autoWorkbench_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Automatic Workbench recipe"}) - public static float autoWorkbench_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Bottling Machine's process"}) - public static float bottlingMachine_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Bottling Machine's process"}) - public static float bottlingMachine_timeModifier = 1; - @Comment({"A modifier to apply to the energy costs of every Mixer's process"}) - public static float mixer_energyModifier = 1; - @Comment({"A modifier to apply to the time of every Mixer's process"}) - public static float mixer_timeModifier = 1; - - //Other Multiblock machines - @Comment({"The Flux the Assembler will consume to craft an item from a recipe"}) - public static int assembler_consumption = 80; - //@Comment({"The Flux the Bottling Machine will consume per tick, when filling items"}) - //public static int bottlingMachine_consumption = 8; - @Comment({"The Flux per tick the Excavator will consume to dig"}) - @Mapped(mapClass = Config.class, mapName = "manual_int") - public static int excavator_consumption = 4096; - @Comment({"The speed of the Excavator. Basically translates to how many degrees per tick it will turn."}) - public static double excavator_speed = 1d; - @Comment({"Set this to false to disable the ridiculous amounts of particles the Excavator spawns"}) - public static boolean excavator_particles = true; - @Comment({"The chance that a given chunk will contain a mineral vein."}) - public static double excavator_chance = .2d; - @Comment({"The chance that the Excavator will not dig up an ore with the currently downward-facing bucket."}) - public static double excavator_fail_chance = .05d; - @Comment({"The maximum amount of yield one can get out of a chunk with the excavator. Set a number smaller than zero to make it infinite"}) - public static int excavator_depletion = 38400; - @Comment({"List of dimensions that can't contain minerals. Default: The End."}) - public static int[] excavator_dimBlacklist = new int[]{1}; - - } - - public static class Ores - { - @Comment({"Generation config for Copper Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_copper = new int[]{8, 40, 72, 8, 100}; - @Comment({"Generation config for Bauxite Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_bauxite = new int[]{4, 40, 85, 8, 100}; - @Comment({"Generation config for Lead Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_lead = new int[]{6, 8, 36, 4, 100}; - @Comment({"Generation config for Silver Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_silver = new int[]{8, 8, 40, 4, 80}; - @Comment({"Generation config for Nickel Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_nickel = new int[]{6, 8, 24, 2, 100}; - @Comment({"Generation config for Uranium Ore.", "Parameters: Vein size, lowest possible Y, highest possible Y, veins per chunk, chance for vein to spawn (out of 100). Set vein size to 0 to disable the generation"}) - @Mapped(mapClass = Config.class, mapName = "manual_intA") - public static int[] ore_uranium = new int[]{4, 8, 24, 2, 60}; - @Comment({"A blacklist of dimensions in which IE ores won't spawn. By default this is Nether (-1) and End (1)"}) - public static int[] oreDimBlacklist = new int[]{-1, 1}; - @Comment({"Set this to false to disable the logging of the chunks that were flagged for retrogen."}) - public static boolean retrogen_log_flagChunk = true; - @Comment({"Set this to false to disable the logging of the chunks that are still left to retrogen."}) - public static boolean retrogen_log_remaining = true; - } - - - public static class Tools - { - @Comment({"Set this to true to completely disable the ore-crushing recipes with the Engineers Hammer"}) - public static boolean disableHammerCrushing = false; - @Comment({"The maximum durability of the Engineer's Hammer. Used up when hammering ingots into plates."}) - public static int hammerDurabiliy = 100; - @Comment({"The maximum durability of the Wirecutter. Used up when cutting plates into wire."}) - public static int cutterDurabiliy = 250; - //@Comment({"Enable this to use the old, harder bullet recipes(require one ingot per bullet)"}); - //public static boolean hardmodeBulletRecipes = false; - @Comment({"The amount of base damage a Casull Cartridge inflicts"}) - public static float bulletDamage_Casull = 10f; - @Comment({"The amount of base damage an ArmorPiercing Cartridge inflicts"}) - public static float bulletDamage_AP = 10f; - @Comment({"The amount of base damage a single part of Buckshot inflicts"}) - public static float bulletDamage_Buck = 2f; - @Comment({"The amount of base damage a DragonsBreath Cartridge inflicts"}) - public static float bulletDamage_Dragon = 3f; - @Comment({"The amount of base damage a Homing Cartridge inflicts"}) - public static float bulletDamage_Homing = 10f; - @Comment({"The amount of base damage a Wolfpack Cartridge inflicts"}) - public static float bulletDamage_Wolfpack = 6f; - @Comment({"The amount of damage the sub-projectiles of the Wolfpack Cartridge inflict"}) - public static float bulletDamage_WolfpackPart = 4f; - @Comment({"The amount of damage a silver bullet inflicts"}) - public static float bulletDamage_Silver = 10f; - @Comment({"The amount of base damage a Phial Cartridge inflicts"}) - public static float bulletDamage_Potion = 1f; - - @Comment({"A list of sounds that should not be muffled by the Ear Defenders. Adding to this list requires knowledge of the correct sound resource names."}) - public static String[] earDefenders_SoundBlacklist = new String[]{}; - @Comment({"The mb of fluid the Chemical Thrower will consume per tick of usage"}) - public static int chemthrower_consumption = 10; - @Comment({"The base amount of Flux consumed per shot by the Railgun"}) - public static int railgun_consumption = 800; - @Comment({"A modifier for the damage of all projectiles fired by the Railgun"}) - public static float railgun_damage = 1f; - } - } - - static Configuration config; - public static void preInit(FMLPreInitializationEvent event) - { - if(OSConfig.validateConnections) - OSLogger.warn("Connection validation enabled"); - - Calendar calendar = Calendar.getInstance(); - seaonal_festive = calendar.get(Calendar.MONTH)+1==12;//December - - Config.manual_int.put("excavator_depletion_days", Machines.excavator_depletion*45/24000); - Config.manual_bool.put("literalRailGun", false);//preventive measure for Railcraft - checkMappedValues(OSConfig.class); - } - - public static void checkMappedValues(Class confClass) - { - for(Field f : confClass.getDeclaredFields()) - { - Mapped mapped = f.getAnnotation(Mapped.class); - if(mapped!=null) - try - { - Class c = mapped.mapClass(); - if(c!=null) - { - Field mapField = c.getDeclaredField(mapped.mapName()); - if(mapField!=null) - { - Map map = (Map)mapField.get(null); - if(map!=null) - map.put(f.getName(),f.get(null)); - } - } - }catch(Exception e){ - e.printStackTrace(); - } - else if(f.getType().getSuperclass()==Object.class) //Only support classes that are one level below Object. - { - checkMappedValues(f.getType()); - } - } - } - - @Retention(RetentionPolicy.RUNTIME) - @Target(ElementType.FIELD) - public @interface Mapped - { - Class mapClass(); - String mapName(); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/OSContents.java b/src/main/java/fr/jackcartersmith/orbsat/common/OSContents.java deleted file mode 100644 index c3ddb84..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/OSContents.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.jackcartersmith.orbsat.common; - -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; - -public class OSContents { - public static ArrayList registeredIPBlocks = new ArrayList(); - public static ArrayList registeredIPItems = new ArrayList(); - - public static void preInit(){ - - } - -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/util/ComparableItemStack.java b/src/main/java/fr/jackcartersmith/orbsat/common/util/ComparableItemStack.java deleted file mode 100644 index e833685..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/util/ComparableItemStack.java +++ /dev/null @@ -1,109 +0,0 @@ -package fr.jackcartersmith.orbsat.common.util; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; - -public class ComparableItemStack { - public ItemStack stack; - public boolean useNBT; - public int oreID=-1; - - public ComparableItemStack(ItemStack stack) - { - this(stack, true); - } - public ComparableItemStack(ItemStack stack, boolean matchOre) - { - if(stack==null) - throw new RuntimeException("You cannot instantiate a ComparableItemStack with null for an Item!"); - this.stack = stack; - if(matchOre) - { - int[] oids = OreDictionary.getOreIDs(stack); - if(oids!=null&&oids.length > 0) - this.oreID = oids[0]; - } - } - public ComparableItemStack(String oreName) - { - //this(IEApi.getPreferredOreStack(oreName)); - this.oreID = OreDictionary.getOreID(oreName); - } - - public ComparableItemStack setUseNBT(boolean useNBT) - { - this.useNBT = useNBT; - return this; - } - public ComparableItemStack setOreID(int oid) - { - this.oreID = oid; - return this; - } - - @Override - public String toString() - { - return "ComparableStack: {"+this.stack.toString()+"}; oreID: "+this.oreID+"; checkNBT: "+this.useNBT; - } - @Override - public int hashCode() - { - if(this.oreID!=-1) - return this.oreID; - int hash = (stack.getItemDamage()&0xffff)*31 + stack.getItem().hashCode()*31; - if(this.useNBT && stack.hasTagCompound()) - hash += stack.getTagCompound().hashCode()*31; - return hash; - } - - @Override - public boolean equals(Object object) - { - if(!(object instanceof ComparableItemStack)) - return false; - - if(this.oreID!=-1 && ((ComparableItemStack)object).oreID!=-1) - return this.oreID == ((ComparableItemStack)object).oreID; - - ItemStack otherStack = ((ComparableItemStack)object).stack; - if(!OreDictionary.itemMatches(stack,otherStack, false)) - return false; - if(this.useNBT) - { - if(this.stack.hasTagCompound() != otherStack.hasTagCompound()) - return false; - if(!this.stack.hasTagCompound() && !otherStack.hasTagCompound()) - return true; - if(!this.stack.getTagCompound().equals(otherStack.getTagCompound())) - return false; - } - return true; - } - - - public NBTTagCompound writeToNBT(NBTTagCompound nbt) - { - if(this.oreID!=-1) - nbt.setString("oreID", OreDictionary.getOreName(oreID)); - else - { - nbt.setTag("stack", stack.writeToNBT(new NBTTagCompound())); - nbt.setBoolean("useNBT", useNBT); - } - return nbt; - } - public static ComparableItemStack readFromNBT(NBTTagCompound nbt) - { - if(nbt.hasKey("oreID")) - return new ComparableItemStack(nbt.getString("oreID")); - else if(nbt.hasKey("stack")) - { - ComparableItemStack comp = new ComparableItemStack(ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("stack"))); - comp.useNBT = nbt.getBoolean("useNBT"); - return comp; - } - return null; - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/util/ItemNBTHelper.java b/src/main/java/fr/jackcartersmith/orbsat/common/util/ItemNBTHelper.java deleted file mode 100644 index 3e66318..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/util/ItemNBTHelper.java +++ /dev/null @@ -1,247 +0,0 @@ -package fr.jackcartersmith.orbsat.common.util; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagString; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.templates.FluidHandlerItemStack; - -public class ItemNBTHelper { - public static NBTTagCompound getTag(ItemStack stack) - { - if(!stack.hasTagCompound()) - stack.setTagCompound(new NBTTagCompound()); - return stack.getTagCompound(); - } - public static boolean hasTag(ItemStack stack) - { - return stack.hasTagCompound(); - } - public static boolean hasKey(ItemStack stack, String key) - { - return hasTag(stack) && getTag(stack).hasKey(key); - } - - public static void remove(ItemStack stack, String key) - { - if(hasKey(stack, key)) - { - getTag(stack).removeTag(key); - if(getTag(stack).hasNoTags()) - stack.setTagCompound(null); - } - } - - - public static void setInt(ItemStack stack, String key, int val) - { - getTag(stack).setInteger(key, val); - } - public static void modifyInt(ItemStack stack, String key, int mod) - { - getTag(stack).setInteger(key, getTag(stack).getInteger(key)+mod); - } - public static int getInt(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getInteger(key) : 0; - } - - public static void setString(ItemStack stack, String key, String val) - { - getTag(stack).setString(key, val); - } - public static String getString(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getString(key) : ""; - } - - public static void setLong(ItemStack stack, String key, long val) - { - getTag(stack).setLong(key, val); - } - public static long getLong(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getLong(key) : 0; - } - - public static void setIntArray(ItemStack stack, String key, int[] val) - { - getTag(stack).setIntArray(key, val); - } - public static int[] getIntArray(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getIntArray(key) : new int[0]; - } - - public static void setFloat(ItemStack stack, String key, float val) - { - getTag(stack).setFloat(key, val); - } - public static float getFloat(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getFloat(key) : 0; - } - - public static void setBoolean(ItemStack stack, String key, boolean val) - { - getTag(stack).setBoolean(key, val); - } - public static boolean getBoolean(ItemStack stack, String key) - { - return hasTag(stack) && getTag(stack).getBoolean(key); - } - - public static void setTagCompound(ItemStack stack, String key, NBTTagCompound val) - { - getTag(stack).setTag(key, val); - } - public static NBTTagCompound getTagCompound(ItemStack stack, String key) - { - return hasTag(stack) ? getTag(stack).getCompoundTag(key) : new NBTTagCompound(); - } - - public static void setDelayedSoundsForStack(ItemStack stack, String nbtKey, String sound, float volume, float pitch, int amount, int baseDelay, int iDelay) - { - int[] delayedSounds = new int[amount]; - for(int i=0; i0) - { - ItemNBTHelper.setIntArray(stack, "delayedSound_"+nbtKey+"_delay", delayedSounds); - } - else - { - ItemNBTHelper.remove(stack, "delayedSound_"+nbtKey+"_delay"); - ItemNBTHelper.remove(stack, "delayedSound_"+nbtKey+"_sound"); - ItemNBTHelper.remove(stack, "delayedSound_"+nbtKey+"_volume"); - ItemNBTHelper.remove(stack, "delayedSound_"+nbtKey+"_pitch"); - } - return l; - } - - public static void setFluidStack(ItemStack stack, String key, FluidStack val) - { - if(val!=null && val.getFluid()!=null) - { - NBTTagCompound tag = getTagCompound(stack, key); - setTagCompound(stack, FluidHandlerItemStack.FLUID_NBT_KEY, val.writeToNBT(new NBTTagCompound())); - } - else - remove(stack, FluidHandlerItemStack.FLUID_NBT_KEY); - } - public static FluidStack getFluidStack(ItemStack stack, String key) - { - if(hasTag(stack)) - { - NBTTagCompound tag = getTagCompound(stack, key); - return FluidStack.loadFluidStackFromNBT(tag.getCompoundTag(FluidHandlerItemStack.FLUID_NBT_KEY)); - } - return null; - } - - public static void setItemStack(ItemStack stack, String key, ItemStack val) - { - getTag(stack).setTag(key, val.writeToNBT(new NBTTagCompound())); - } - public static ItemStack getItemStack(ItemStack stack, String key) - { - if(hasTag(stack) && getTag(stack).hasKey(key)) - return ItemStack.loadItemStackFromNBT(getTagCompound(stack, key)); - return null; - } - - public static void setLore(ItemStack stack, String... lore) - { - NBTTagCompound displayTag = getTagCompound(stack, "display"); - NBTTagList list = new NBTTagList(); - for(String s : lore) - list.appendTag(new NBTTagString(s)); - displayTag.setTag("Lore", list); - setTagCompound(stack, "display", displayTag); - } - - public static int insertFluxItem(ItemStack container, int energy, int maxEnergy, boolean simulate) - { - int stored = getFluxStoredInItem(container); - int accepted = Math.min(energy, maxEnergy-stored); - if(!simulate) - { - stored += accepted; - ItemNBTHelper.setInt(container, "energy", stored); - } - return accepted; - } - public static int extractFluxFromItem(ItemStack container, int energy, boolean simulate) - { - int stored = getFluxStoredInItem(container); - int extracted = Math.min(energy, stored); - if(!simulate) - { - stored -= extracted; - ItemNBTHelper.setInt(container, "energy", stored); - } - return extracted; - } - public static int getFluxStoredInItem(ItemStack container) - { - return getInt(container, "energy"); - } - - public static ItemStack stackWithData(ItemStack stack, Object... data) - { - assert(data.length%2==0); - for(int i=0; i - public double m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33; - public Matrix4() - { - m00 = m11 = m22 = m33 = 1; - } - public Matrix4(double d00, double d01, double d02, double d03, - double d10, double d11, double d12, double d13, - double d20, double d21, double d22, double d23, - double d30, double d31, double d32, double d33) - { - m00 = d00; - m01 = d01; - m02 = d02; - m03 = d03; - m10 = d10; - m11 = d11; - m12 = d12; - m13 = d13; - m20 = d20; - m21 = d21; - m22 = d22; - m23 = d23; - m30 = d30; - m31 = d31; - m32 = d32; - m33 = d33; - } - public Matrix4(Matrix4 mat) - { - set(mat); - } - public Matrix4(Matrix4f mat) - { - m00 = mat.m00; - m01 = mat.m01; - m02 = mat.m02; - m03 = mat.m03; - m10 = mat.m10; - m11 = mat.m11; - m12 = mat.m12; - m13 = mat.m13; - m20 = mat.m20; - m21 = mat.m21; - m22 = mat.m22; - m23 = mat.m23; - m30 = mat.m30; - m31 = mat.m31; - m32 = mat.m32; - m33 = mat.m33; - } - - public Matrix4(EnumFacing facing) - { - this(); - setIdentity(); - translate(.5, .5, .5); - switch(facing) - { - case UP: - rotate(Math.PI/2, 1, 0, 0); - break; - case DOWN: - rotate(-Math.PI/2, 1, 0, 0); - break; - case SOUTH: - rotate(Math.PI, 0, 1, 0); - break; - case EAST: - rotate(-Math.PI/2, 0, 1, 0); - break; - case WEST: - rotate(Math.PI/2, 0, 1, 0); - break; - case NORTH: - } - translate(-.5, -.5, -.5); - } - public Matrix4 setIdentity() - { - m00 = m11 = m22 = m33 = 1; - m01 = m02 = m03 = m10 = m12 = m13 = m20 = m21 = m23 = m30 = m31 = m32 = 0; - return this; - } - public Matrix4 translate(Vector3f vec) - { - m03 += m00 * vec.x + m01 * vec.y + m02 * vec.z; - m13 += m10 * vec.x + m11 * vec.y + m12 * vec.z; - m23 += m20 * vec.x + m21 * vec.y + m22 * vec.z; - m33 += m30 * vec.x + m31 * vec.y + m32 * vec.z; - return this; - } - public Matrix4 translate(double x, double y, double z) - { - m03 += m00 * x + m01 * y + m02 * z; - m13 += m10 * x + m11 * y + m12 * z; - m23 += m20 * x + m21 * y + m22 * z; - m33 += m30 * x + m31 * y + m32 * z; - return this; - } - public Matrix4 scale(Vector3f vec) - { - m00 *= vec.x; - m10 *= vec.x; - m20 *= vec.x; - m30 *= vec.x; - m01 *= vec.y; - m11 *= vec.y; - m21 *= vec.y; - m31 *= vec.y; - m02 *= vec.z; - m12 *= vec.z; - m22 *= vec.z; - m32 *= vec.z; - return this; - } - public Matrix4 scale(double x, double y, double z) - { - m00 *= x; - m10 *= x; - m20 *= x; - m30 *= x; - m01 *= y; - m11 *= y; - m21 *= y; - m31 *= y; - m02 *= z; - m12 *= z; - m22 *= z; - m32 *= z; - return this; - } - public Matrix4 rotate(double angle, Vector3f axis) - { - double c = Math.cos(angle); - double s = Math.sin(angle); - double mc = 1.0f - c; - double xy = axis.x*axis.y; - double yz = axis.y*axis.z; - double xz = axis.x*axis.z; - double xs = axis.x*s; - double ys = axis.y*s; - double zs = axis.z*s; - double f00 = axis.x*axis.x*mc+c; - double f10 = xy*mc+zs; - double f20 = xz*mc-ys; - double f01 = xy*mc-zs; - double f11 = axis.y*axis.y*mc+c; - double f21 = yz*mc+xs; - double f02 = xz*mc+ys; - double f12 = yz*mc-xs; - double f22 = axis.z*axis.z*mc+c; - double t00 = m00 * f00 + m01 * f10 + m02 * f20; - double t10 = m10 * f00 + m11 * f10 + m12 * f20; - double t20 = m20 * f00 + m21 * f10 + m22 * f20; - double t30 = m30 * f00 + m31 * f10 + m32 * f20; - double t01 = m00 * f01 + m01 * f11 + m02 * f21; - double t11 = m10 * f01 + m11 * f11 + m12 * f21; - double t21 = m20 * f01 + m21 * f11 + m22 * f21; - double t31 = m30 * f01 + m31 * f11 + m32 * f21; - m02 = m00 * f02 + m01 * f12 + m02 * f22; - m12 = m10 * f02 + m11 * f12 + m12 * f22; - m22 = m20 * f02 + m21 * f12 + m22 * f22; - m32 = m30 * f02 + m31 * f12 + m32 * f22; - m00 = t00; - m10 = t10; - m20 = t20; - m30 = t30; - m01 = t01; - m11 = t11; - m21 = t21; - m31 = t31; - return this; - } - public Matrix4 rotate(double angle, double x, double y, double z) - { - double c = Math.cos(angle); - double s = Math.sin(angle); - double mc = 1.0f - c; - double xy = x*y; - double yz = y*z; - double xz = x*z; - double xs = x*s; - double ys = y*s; - double zs = z*s; - double f00 = x*x*mc+c; - double f10 = xy*mc+zs; - double f20 = xz*mc-ys; - double f01 = xy*mc-zs; - double f11 = y*y*mc+c; - double f21 = yz*mc+xs; - double f02 = xz*mc+ys; - double f12 = yz*mc-xs; - double f22 = z*z*mc+c; - double t00 = m00 * f00 + m01 * f10 + m02 * f20; - double t10 = m10 * f00 + m11 * f10 + m12 * f20; - double t20 = m20 * f00 + m21 * f10 + m22 * f20; - double t30 = m30 * f00 + m31 * f10 + m32 * f20; - double t01 = m00 * f01 + m01 * f11 + m02 * f21; - double t11 = m10 * f01 + m11 * f11 + m12 * f21; - double t21 = m20 * f01 + m21 * f11 + m22 * f21; - double t31 = m30 * f01 + m31 * f11 + m32 * f21; - m02 = m00 * f02 + m01 * f12 + m02 * f22; - m12 = m10 * f02 + m11 * f12 + m12 * f22; - m22 = m20 * f02 + m21 * f12 + m22 * f22; - m32 = m30 * f02 + m31 * f12 + m32 * f22; - m00 = t00; - m10 = t10; - m20 = t20; - m30 = t30; - m01 = t01; - m11 = t11; - m21 = t21; - m31 = t31; - return this; - } - public Matrix4 leftMultiply(Matrix4 mat) - { - double n00 = m00 * mat.m00 + m10 * mat.m01 + m20 * mat.m02 + m30 * mat.m03; - double n01 = m01 * mat.m00 + m11 * mat.m01 + m21 * mat.m02 + m31 * mat.m03; - double n02 = m02 * mat.m00 + m12 * mat.m01 + m22 * mat.m02 + m32 * mat.m03; - double n03 = m03 * mat.m00 + m13 * mat.m01 + m23 * mat.m02 + m33 * mat.m03; - double n10 = m00 * mat.m10 + m10 * mat.m11 + m20 * mat.m12 + m30 * mat.m13; - double n11 = m01 * mat.m10 + m11 * mat.m11 + m21 * mat.m12 + m31 * mat.m13; - double n12 = m02 * mat.m10 + m12 * mat.m11 + m22 * mat.m12 + m32 * mat.m13; - double n13 = m03 * mat.m10 + m13 * mat.m11 + m23 * mat.m12 + m33 * mat.m13; - double n20 = m00 * mat.m20 + m10 * mat.m21 + m20 * mat.m22 + m30 * mat.m23; - double n21 = m01 * mat.m20 + m11 * mat.m21 + m21 * mat.m22 + m31 * mat.m23; - double n22 = m02 * mat.m20 + m12 * mat.m21 + m22 * mat.m22 + m32 * mat.m23; - double n23 = m03 * mat.m20 + m13 * mat.m21 + m23 * mat.m22 + m33 * mat.m23; - double n30 = m00 * mat.m30 + m10 * mat.m31 + m20 * mat.m32 + m30 * mat.m33; - double n31 = m01 * mat.m30 + m11 * mat.m31 + m21 * mat.m32 + m31 * mat.m33; - double n32 = m02 * mat.m30 + m12 * mat.m31 + m22 * mat.m32 + m32 * mat.m33; - double n33 = m03 * mat.m30 + m13 * mat.m31 + m23 * mat.m32 + m33 * mat.m33; - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - return this; - } - public Matrix4 multiply(Matrix4 mat) - { - double n00 = m00 * mat.m00 + m01 * mat.m10 + m02 * mat.m20 + m03 * mat.m30; - double n01 = m00 * mat.m01 + m01 * mat.m11 + m02 * mat.m21 + m03 * mat.m31; - double n02 = m00 * mat.m02 + m01 * mat.m12 + m02 * mat.m22 + m03 * mat.m32; - double n03 = m00 * mat.m03 + m01 * mat.m13 + m02 * mat.m23 + m03 * mat.m33; - double n10 = m10 * mat.m00 + m11 * mat.m10 + m12 * mat.m20 + m13 * mat.m30; - double n11 = m10 * mat.m01 + m11 * mat.m11 + m12 * mat.m21 + m13 * mat.m31; - double n12 = m10 * mat.m02 + m11 * mat.m12 + m12 * mat.m22 + m13 * mat.m32; - double n13 = m10 * mat.m03 + m11 * mat.m13 + m12 * mat.m23 + m13 * mat.m33; - double n20 = m20 * mat.m00 + m21 * mat.m10 + m22 * mat.m20 + m23 * mat.m30; - double n21 = m20 * mat.m01 + m21 * mat.m11 + m22 * mat.m21 + m23 * mat.m31; - double n22 = m20 * mat.m02 + m21 * mat.m12 + m22 * mat.m22 + m23 * mat.m32; - double n23 = m20 * mat.m03 + m21 * mat.m13 + m22 * mat.m23 + m23 * mat.m33; - double n30 = m30 * mat.m00 + m31 * mat.m10 + m32 * mat.m20 + m33 * mat.m30; - double n31 = m30 * mat.m01 + m31 * mat.m11 + m32 * mat.m21 + m33 * mat.m31; - double n32 = m30 * mat.m02 + m31 * mat.m12 + m32 * mat.m22 + m33 * mat.m32; - double n33 = m30 * mat.m03 + m31 * mat.m13 + m32 * mat.m23 + m33 * mat.m33; - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - return this; - } - public Matrix4 transpose() - { - double n00 = m00; - double n10 = m01; - double n20 = m02; - double n30 = m03; - double n01 = m10; - double n11 = m11; - double n21 = m12; - double n31 = m13; - double n02 = m20; - double n12 = m21; - double n22 = m22; - double n32 = m23; - double n03 = m30; - double n13 = m31; - double n23 = m32; - double n33 = m33; - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - return this; - } - public Matrix4 copy() - { - return new Matrix4(this); - } - public Matrix4 set(Matrix4 mat) - { - m00 = mat.m00; - m01 = mat.m01; - m02 = mat.m02; - m03 = mat.m03; - m10 = mat.m10; - m11 = mat.m11; - m12 = mat.m12; - m13 = mat.m13; - m20 = mat.m20; - m21 = mat.m21; - m22 = mat.m22; - m23 = mat.m23; - m30 = mat.m30; - m31 = mat.m31; - m32 = mat.m32; - m33 = mat.m33; - return this; - } - public void apply(Matrix4 mat) - { - mat.multiply(this); - } - private void mult3x3(Vector3f vec) - { - double x = m00 * vec.x + m01 * vec.y + m02 * vec.z; - double y = m10 * vec.x + m11 * vec.y + m12 * vec.z; - double z = m20 * vec.x + m21 * vec.y + m22 * vec.z; - vec.x = (float)x; - vec.y = (float)y; - vec.z = (float)z; - } - public void apply(Vector3f vec) - { - mult3x3(vec); - vec.x += m03; - vec.y += m13; - vec.z += m23; - } - private Vec3d mult3x3(Vec3d vec) - { - double x = m00 * vec.xCoord + m01 * vec.yCoord + m02 * vec.zCoord; - double y = m10 * vec.xCoord + m11 * vec.yCoord + m12 * vec.zCoord; - double z = m20 * vec.xCoord + m21 * vec.yCoord + m22 * vec.zCoord; - return new Vec3d(x,y,z); - } - public Vec3d apply(Vec3d vec) - { - return mult3x3(vec).addVector(m03, m13, m23); - } - - private org.lwjgl.util.vector.Vector3f mult3x3(org.lwjgl.util.vector.Vector3f vec) - { - float x = (float) (m00 * vec.x + m01 * vec.y + m02 * vec.z); - float y = (float) (m10 * vec.x + m11 * vec.y + m12 * vec.z); - float z = (float) (m20 * vec.x + m21 * vec.y + m22 * vec.z); - return new org.lwjgl.util.vector.Vector3f(x, y, z); - } - - public org.lwjgl.util.vector.Vector3f apply(org.lwjgl.util.vector.Vector3f vec) - { - org.lwjgl.util.vector.Vector3f vec2 = mult3x3(vec); - vec2.x += m03; - vec2.y += m13; - vec2.z += m23; - return vec2; - } - - public Matrix4f toMatrix4f() - { - return new Matrix4f((float)m00,(float)m01,(float)m02,(float)m03, (float)m10,(float)m11,(float)m12,(float)m13, (float)m20,(float)m21,(float)m22,(float)m23, (float)m30,(float)m31,(float)m32,(float)m33); - } - public void fromMatrix4f(Matrix4f mat) - { - m00 = mat.m00; m01 = mat.m01; m02 = mat.m02; m03 = mat.m03; - m10 = mat.m10; m11 = mat.m11; m12 = mat.m12; m13 = mat.m13; - m20 = mat.m20; m21 = mat.m21; m22 = mat.m22; m23 = mat.m23; - m30 = mat.m30; m31 = mat.m31; m32 = mat.m32; m33 = mat.m33; - } - - public final void invert() - { - Matrix4f temp = toMatrix4f(); - temp.invert(); - this.fromMatrix4f(temp); - } - - @Override - public String toString() - { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "["+new BigDecimal(m00, cont)+","+new BigDecimal(m01, cont)+","+new BigDecimal(m02, cont)+","+new BigDecimal(m03, cont)+"]\n"+ - "["+new BigDecimal(m10, cont)+","+new BigDecimal(m11, cont)+","+new BigDecimal(m12, cont)+","+new BigDecimal(m13, cont)+"]\n"+ - "["+new BigDecimal(m20, cont)+","+new BigDecimal(m21, cont)+","+new BigDecimal(m22, cont)+","+new BigDecimal(m23, cont)+"]\n"+ - "["+new BigDecimal(m30, cont)+","+new BigDecimal(m31, cont)+","+new BigDecimal(m32, cont)+","+new BigDecimal(m33, cont)+"]"; - } -} - diff --git a/src/main/java/fr/jackcartersmith/orbsat/common/util/OSLogger.java b/src/main/java/fr/jackcartersmith/orbsat/common/util/OSLogger.java deleted file mode 100644 index 27efe15..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/common/util/OSLogger.java +++ /dev/null @@ -1,34 +0,0 @@ -package fr.jackcartersmith.orbsat.common.util; - -import org.apache.logging.log4j.Level; - -import net.minecraftforge.fml.common.FMLLog; - -public class OSLogger { - public static boolean debug = false; - public static void log(Level logLevel, Object object) - { - FMLLog.log("orbsat", logLevel, String.valueOf(object)); - } - - public static void error(Object object) - { - log(Level.ERROR, object); - } - - public static void info(Object object) - { - log(Level.INFO, object); - } - - public static void warn(Object object) - { - log(Level.WARN, object); - } - - public static void debug(Object object) - { -// if(debug) -// log(Level.INFO, "[DEBUG:] "+object); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/item/ItemOSBase.java b/src/main/java/fr/jackcartersmith/orbsat/item/ItemOSBase.java deleted file mode 100644 index 297cf31..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/item/ItemOSBase.java +++ /dev/null @@ -1,93 +0,0 @@ -package fr.jackcartersmith.orbsat.item; - -import java.util.List; - -import fr.jackcartersmith.orbsat.OSRefs; -import fr.jackcartersmith.orbsat.OrbitalSatellite; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemOSBase extends Item{ - public String itemName; - protected String[] subNames; - boolean[] isMetaHidden; - public boolean registerSubModels=true; - - public ItemOSBase(String name, int stackSize, String... subNames){ - this.setUnlocalizedName(OSRefs.MODID+"."+name); - this.setHasSubtypes(subNames!=null&&subNames.length>0); - this.setCreativeTab(OrbitalSatellite.creativeTab); - this.setMaxStackSize(stackSize); - this.itemName = name; - this.subNames = subNames!=null&&subNames.length>0?subNames:null; - this.isMetaHidden = new boolean[this.subNames!=null?this.subNames.length:1]; - - OrbitalSatellite.register(this, name); - OSRefs.registeredOSItems.add(this); - } - - public String[] getSubNames() - { - return subNames; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, List list) - { - if(getSubNames()!=null) - { - for(int i=0;i=0 && i=0 && i enabledDomains = new HashSet(); - private final Map cache = new HashMap(); - private final Map errors = new HashMap(); - public static OSOBJLoader instance = new OSOBJLoader(); - - public void addDomain(String domain) - { - enabledDomains.add(domain.toLowerCase(Locale.ENGLISH)); - OSLogger.info("[OrbSAT] Custom OBJLoader: Domain has been added: "+domain.toLowerCase(Locale.ENGLISH)); - } - - @Override - public boolean accepts(ResourceLocation modelLocation) - { - return enabledDomains.contains(modelLocation.getResourceDomain()) && modelLocation.getResourcePath().endsWith(".obj.adv"); - } - - @Override - public IModel loadModel(ResourceLocation modelLocation) throws Exception - { - ResourceLocation file = new ResourceLocation(modelLocation.getResourceDomain(), modelLocation.getResourcePath()); - if(!cache.containsKey(file)) - { - IModel model = OBJLoader.INSTANCE.loadModel(modelLocation); - if(model instanceof OBJModel) - { - OSOBJModel osobj = new OSOBJModel(((OBJModel)model).getMatLib(), file); - cache.put(modelLocation, osobj); - } - } - OSOBJModel model = cache.get(file); - if(model == null) - return ModelLoaderRegistry.getMissingModel(); - return model; - } - - @Override - public void onResourceManagerReload(IResourceManager resourceManager) - { - this.manager = resourceManager; - cache.clear(); - errors.clear(); - } -} diff --git a/src/main/java/fr/jackcartersmith/orbsat/models/obj/OSOBJModel.java b/src/main/java/fr/jackcartersmith/orbsat/models/obj/OSOBJModel.java deleted file mode 100644 index b4e1ad3..0000000 --- a/src/main/java/fr/jackcartersmith/orbsat/models/obj/OSOBJModel.java +++ /dev/null @@ -1,96 +0,0 @@ -package fr.jackcartersmith.orbsat.models.obj; - -import java.lang.reflect.Field; - -import com.google.common.base.Function; -import com.google.common.collect.ImmutableMap; - -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModel; -import net.minecraftforge.client.model.obj.OBJModel; -import net.minecraftforge.common.model.IModelState; - -public class OSOBJModel extends OBJModel{ - public OSOBJModel(MaterialLibrary matLib, ResourceLocation modelLocation) - { - super(matLib, modelLocation); - } - - public OSOBJModel(MaterialLibrary matLib, ResourceLocation modelLocation, Object customData) - { - super(matLib, modelLocation); - this.setCustomData(customData); - } - - @Override - public IBakedModel bake(IModelState state, VertexFormat format, Function bakedTextureGetter) - { - IBakedModel preBaked = super.bake(state, format, bakedTextureGetter); - //return new OSSmartObjModel(preBaked, this, state, format, OSSmartObjModel.getTexturesForOBJModel(preBaked), null); - return preBaked; - } - - @Override - public IModel process(ImmutableMap customData) - { - OSOBJModel ret = new OSOBJModel(this.getMatLib(), getResourceLocation(), getCustomData()); - return ret; - } - - @Override - public IModel retexture(ImmutableMap textures) - { - OSOBJModel ret = new OSOBJModel(this.getMatLib().makeLibWithReplacements(textures), getResourceLocation(), getCustomData()); - return ret; - } - - static Field f_modelLocation; - public ResourceLocation getResourceLocation() - { - try{ - if(f_modelLocation==null) - { - f_modelLocation = OBJModel.class.getDeclaredField("modelLocation"); - f_modelLocation.setAccessible(true); - } - if(f_modelLocation!=null) - return (ResourceLocation)f_modelLocation.get(this); - }catch(Exception e){ - e.printStackTrace(); - } - return null; - } - static Field f_customData; - public Object getCustomData() - { - try{ - if(f_customData==null) - { - f_customData = OBJModel.class.getDeclaredField("customData"); - f_customData.setAccessible(true); - } - if(f_customData!=null) - return f_customData.get(this); - }catch(Exception e){ - e.printStackTrace(); - } - return null; - } - public void setCustomData(Object data) - { - try{ - if(f_customData==null) - { - f_customData = OBJModel.class.getDeclaredField("customData"); - f_customData.setAccessible(true); - } - if(f_customData!=null) - f_customData.set(this, data); - }catch(Exception e){ - e.printStackTrace(); - } - } -} diff --git a/src/main/resources/assets/orbsat/blockstates/devices.json b/src/main/resources/assets/orbsat/blockstates/devices.json deleted file mode 100644 index 47015d0..0000000 --- a/src/main/resources/assets/orbsat/blockstates/devices.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "forge_marker": 1, - "defaults": - { - "transform": "forge:default-block", - "model": "orbsat:osSixSides", - "textures": { - "bottom": "orbsat:blocks/device_base", - "top": "orbsat:blocks/device_base", - "north": "orbsat:blocks/device_base", - "south": "orbsat:blocks/device_base", - "west": "orbsat:blocks/device_base", - "east": "orbsat:blocks/device_base", - - "sideOff": "orbsat:blocks/device_base", - "sideOn": "orbsat:blocks/device_base" - } - }, - "variants": { - "inventory,type=satellite_launcher": [{"textures": { - "bottom": "orbsat:blocks/device_base", - "top": "orbsat:blocks/device_base", - "north": "orbsat:blocks/device_satelliteLauncher_front", - "south": "orbsat:blocks/device_satelliteLauncher_back", - "west": "orbsat:blocks/device_satelliteLauncher_side", - "east": "orbsat:blocks/device_satelliteLauncher_side"} - }], - "inventory,type=satellite_centrale": [{"textures": { - "bottom": "orbsat:blocks/device_base", - "top": "orbsat:blocks/device_base", - "north": "orbsat:blocks/device_base", - "south": "orbsat:blocks/device_base", - "west": "orbsat:blocks/device_base", - "east": "orbsat:blocks/device_base"} - }], - "inventory,type=satellite_assembler": [{ - "model": "orbsat:satellite_assembler.obj", - "custom": {"flip-v": true}, - "transform": { - "scale": [ 0.1875, 0.1875, 0.1875 ], - "firstperson_righthand": { "scale": [ 0.75, 0.75, 0.75 ], "rotation": [{ "y": 90 }] }, - "firstperson_lefthand": { "scale": [ 0.75, 0.75, 0.75 ], "rotation": [{ "y": 90 }] }, - "thirdperson_righthand": { "translation": [ 0, 0.09375, -0.171875 ], "rotation": [{ "x": 70 }, { "y": 70 }] }, - "thirdperson_lefthand": { "translation": [ 0, 0.09375, -0.171875 ], "rotation": [{ "x": 70 }, { "y": 70 }] }, - "fixed": {"scale": [ 2,2,2 ], "translation": [ 0, -0.25, 0 ], "rotation": [{ "y": 0 }]}, - "gui": { "translation": [ 0, -0.25, 0 ], "rotation": [{ "x": 30 },{ "y": 135 }], "scale": [ 1.5, 1.5, 1.5 ] } - } - }], - "type=satellite_assembler": { - "model": "orbsat:satellite_assembler.obj", - "custom": { "flip-v": true } - }, - "type=satellite_launcher": {"parent":"block/cube_all", "textures": { - "bottom": "orbsat:blocks/device_base", - "top": "orbsat:blocks/device_base", - "north": "orbsat:blocks/device_satelliteLauncher_front", - "south": "orbsat:blocks/device_satelliteLauncher_back", - "west": "orbsat:blocks/device_satelliteLauncher_side", - "east": "orbsat:blocks/device_satelliteLauncher_side", - "sideOff": "#sideOff", - "sideOn": "#sideOff" - }}, - "type=satellite_centrale": {"parent":"block/cube_all", "textures": { - "bottom": "orbsat:blocks/device_base", - "top": "orbsat:blocks/device_base", - "north": "orbsat:blocks/device_base", - "south": "orbsat:blocks/device_base", - "west": "orbsat:blocks/device_base", - "east": "orbsat:blocks/device_base" - }}, - "facing": - { - "down": { "transform": { - "rotation": {"x": -90 } - }}, - "up": { "transform": { - "rotation": {"x": 90 } - }}, - "north": { "transform": { - "rotation": {"y": 0 } - }}, - "south": { "transform": { - "rotation": {"y": 180 } - }}, - "west": { "transform": { - "rotation": {"y": 90 } - }}, - "east": { "transform": { - "rotation": {"y": -90 } - }} - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/lang/en_US.lang b/src/main/resources/assets/orbsat/lang/en_US.lang deleted file mode 100644 index 309c078..0000000 --- a/src/main/resources/assets/orbsat/lang/en_US.lang +++ /dev/null @@ -1,11 +0,0 @@ -#CreativeTabs -itemGroup.orbsat=Orbital Satellite -#Items -item.orbsat.components.laserDesignator.name=Targeting Satellite Computer -item.orbsat.components.designatorCircuit.name=Targeting Computer Circuit -item.orbsat.components.photonLens.name=Lens -item.orbsat.components.photonConcentrator.name=Photon Concentrator -item.orbsat.components.photonCapacitor.name=Photon Capacitor -item.orbsat.satellites.classic_mki.name=Classic Laser Satellite MK-I -item.orbsat.satellites.classic_mkii.name=Classic Laser Satellite MK-II -item.orbsat.satellites.classic_mkiii.name=Classic Laser Satellite MK-III \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/lang/fr_FR.lang b/src/main/resources/assets/orbsat/lang/fr_FR.lang deleted file mode 100644 index 2c248e9..0000000 --- a/src/main/resources/assets/orbsat/lang/fr_FR.lang +++ /dev/null @@ -1,11 +0,0 @@ -#CreativeTabs -itemGroup.orbsat=Satellite Orbital -#Items -item.orbsat.components.laserDesignator.name=Ordinateur de visée du satellite -item.orbsat.components.designatorCircuit.name=Circuit pour ordinateur de visée -item.orbsat.components.photonLens.name=Lentille -item.orbsat.components.photonConcentrator.name=Concentrateur à photon -item.orbsat.components.photonCapacitor.name=Condensateur à photon -item.orbsat.satellites.classic_mki.name=Satellite classique de frappe laser MK-I -item.orbsat.satellites.classic_mkii.name=Satellite classique de frappe laser MK-II -item.orbsat.satellites.classic_mkiii.name=Satellite classique de frappe laser MK-III \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/block/osSixSides.json b/src/main/resources/assets/orbsat/models/block/osSixSides.json deleted file mode 100644 index 1707dcd..0000000 --- a/src/main/resources/assets/orbsat/models/block/osSixSides.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "elements": [{ - "from": [ 0,0,0 ], - "to": [ 16,16,16 ], - "faces": { - "down": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] }, - "up": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] }, - "north": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] }, - "south": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] }, - "west": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] }, - "east": { "texture": "orbsat:blocks/device_base", "uv": [0,0,16,16] } - } - }], - "textures": - { - "particle": "orbsat:blocks/device_base" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/block/satellite_assembler.mtl b/src/main/resources/assets/orbsat/models/block/satellite_assembler.mtl deleted file mode 100644 index 95618f6..0000000 --- a/src/main/resources/assets/orbsat/models/block/satellite_assembler.mtl +++ /dev/null @@ -1,2 +0,0 @@ -newmtl satellite_assembler -map_Ka orbsat:blocks/satellite_assembler diff --git a/src/main/resources/assets/orbsat/models/block/satellite_assembler.obj b/src/main/resources/assets/orbsat/models/block/satellite_assembler.obj deleted file mode 100644 index 82b8a72..0000000 --- a/src/main/resources/assets/orbsat/models/block/satellite_assembler.obj +++ /dev/null @@ -1,135 +0,0 @@ -mtllib satellite_assembler.mtl -o fab_lab -v 0.996472 0.997981 -1.822489 -v 0.996472 2.998219 -1.822489 -v 1.692860 0.997981 -1.487127 -v 1.692860 2.998219 -1.487127 -v 1.864854 0.997981 -0.733574 -v 1.864854 2.998219 -0.733574 -v 1.382938 0.997981 -0.129271 -v 1.382938 2.998219 -0.129271 -v 0.610006 0.997981 -0.129271 -v 0.610006 2.998219 -0.129271 -v 0.128091 0.997981 -0.733573 -v 0.128091 2.998219 -0.733573 -v 0.300084 0.997981 -1.487127 -v 0.300084 2.998219 -1.487127 -vt 0.5000 0.5937 -vt 0.5000 0.1250 -vt 0.6562 0.1250 -vt 0.6562 0.5938 -vt 0.2500 0.6250 -vt 0.2500 0.1250 -vt 0.5000 0.1250 -vt 0.5000 0.6250 -vt 0.2500 0.1250 -vt 0.2500 0.6250 -vt 0.2500 0.1250 -vt 0.2500 0.5000 -vt 0.0000 0.5000 -vt 0.0000 0.1250 -vt 0.2500 0.6250 -vt 0.2500 0.1250 -vt 0.5000 0.1250 -vt 0.5000 0.6250 -vt 0.2500 0.1250 -vt 0.2500 0.6250 -vt 0.6562 0.5938 -vt 0.6562 0.1250 -vt 0.5000 0.5938 -vt 0.1289 0.7579 -vt 0.2717 0.7382 -vt 0.2815 0.6546 -vt 0.2028 0.6309 -vt 0.1417 0.5857 -vt 0.0896 0.6319 -vt 0.1014 0.7018 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -usemtl satellite_assembler -f 1/1 2/2 4/3 3/4 -f 3/5 4/6 6/7 5/8 -f 5/8 6/7 8/9 7/10 -f 7/11 8/12 10/13 9/14 -f 9/15 10/16 12/17 11/18 -f 11/18 12/17 14/19 13/20 -f 13/21 14/22 2/2 1/23 -f 1/24 3/25 5/26 7/27 9/28 11/29 13/30 -o constructor -v 0.129361 1.000636 -1.875538 -v 0.129361 0.240983 -1.875539 -v 0.129361 1.000636 -0.124046 -v 0.129361 0.240983 -0.124047 -v 1.871430 1.000636 -1.875538 -v 1.871430 0.240983 -1.875539 -v 1.871430 1.000636 -0.124046 -v 1.871430 0.240983 -0.124047 -vt 0.5000 0.6250 -vt 0.2500 0.6250 -vt 0.2500 0.1250 -vt 0.5000 0.1250 -vt 0.0000 0.5000 -vt 0.2500 0.5000 -vt 0.2500 0.1250 -vt 0.0000 0.1250 -vt 0.2500 0.1250 -vt 0.5000 0.1250 -vt 0.5000 0.6250 -vt 0.2500 0.6250 -vt 0.5000 0.1250 -vt 0.2500 0.1250 -vt 0.7188 0.7812 -vt 0.7188 1.0000 -vt 0.0000 1.0000 -vt 0.0000 0.7812 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -vt 0.0000 0.0000 -usemtl satellite_assembler -f 15/38 16/39 18/40 17/41 -f 17/42 18/43 22/44 21/45 -f 21/46 22/47 20/48 19/49 -f 19/49 20/48 16/50 15/51 -f 17/52 21/53 19/54 15/55 -o base -v 0.000000 0.000000 0.004289 -v 0.000000 0.244858 0.004289 -v 0.000000 0.000000 -1.995711 -v 0.000000 0.244858 -1.995711 -v 2.000000 0.000000 0.004289 -v 2.000000 0.244858 0.004289 -v 2.000000 0.000000 -1.995711 -v 2.000000 0.244858 -1.995711 -vt 0.7500 0.0000 -vt 0.7500 0.1250 -vt 0.0000 0.1250 -vt 0.0000 0.0000 -vt 0.7500 0.0000 -vt 0.7500 0.1250 -vt 0.0000 0.1250 -vt 0.0000 0.0000 -vt 0.7499 0.0000 -vt 0.7500 0.1246 -vt 0.0000 0.1246 -vt 0.0000 0.0000 -vt 0.7500 0.0000 -vt 0.7500 0.1250 -vt 0.0000 0.1250 -vt 0.0000 0.0000 -vt 0.7188 0.7812 -vt 0.7188 1.0000 -vt 0.0000 1.0000 -vt 0.0000 0.7812 -# vt -0.2500 -0.0000 -usemtl satellite_assembler -f 23/60 24/61 26/62 25/63 -f 25/64 26/65 30/66 29/67 -f 29/68 30/69 28/70 27/71 -f 27/72 28/73 24/74 23/75 -f 30/76 26/77 24/78 28/79 diff --git a/src/main/resources/assets/orbsat/models/item/components/designatorCircuit.json b/src/main/resources/assets/orbsat/models/item/components/designatorCircuit.json deleted file mode 100644 index 0a5619a..0000000 --- a/src/main/resources/assets/orbsat/models/item/components/designatorCircuit.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/designatorCircuit" - } -} diff --git a/src/main/resources/assets/orbsat/models/item/components/laserDesignator.json b/src/main/resources/assets/orbsat/models/item/components/laserDesignator.json deleted file mode 100644 index e883b90..0000000 --- a/src/main/resources/assets/orbsat/models/item/components/laserDesignator.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/laserDesignator" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/components/photonCapacitor.json b/src/main/resources/assets/orbsat/models/item/components/photonCapacitor.json deleted file mode 100644 index e065daa..0000000 --- a/src/main/resources/assets/orbsat/models/item/components/photonCapacitor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/photonCapacitor" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/components/photonConcentrator.json b/src/main/resources/assets/orbsat/models/item/components/photonConcentrator.json deleted file mode 100644 index 05d58c9..0000000 --- a/src/main/resources/assets/orbsat/models/item/components/photonConcentrator.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/photonConcentrator" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/components/photonLens.json b/src/main/resources/assets/orbsat/models/item/components/photonLens.json deleted file mode 100644 index 3ed07ac..0000000 --- a/src/main/resources/assets/orbsat/models/item/components/photonLens.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/photonLens" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/flat.json b/src/main/resources/assets/orbsat/models/item/flat.json deleted file mode 100644 index 77fd847..0000000 --- a/src/main/resources/assets/orbsat/models/item/flat.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "missingno" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/satellites/classic_mki.json b/src/main/resources/assets/orbsat/models/item/satellites/classic_mki.json deleted file mode 100644 index b1ac8d4..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/classic_mki.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/classicSatellite_mki" - } -} diff --git a/src/main/resources/assets/orbsat/models/item/satellites/classic_mkii.json b/src/main/resources/assets/orbsat/models/item/satellites/classic_mkii.json deleted file mode 100644 index 35869bb..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/classic_mkii.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/classicSatellite_mkii" - } -} diff --git a/src/main/resources/assets/orbsat/models/item/satellites/classic_mkiii.json b/src/main/resources/assets/orbsat/models/item/satellites/classic_mkiii.json deleted file mode 100644 index e2afdee..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/classic_mkiii.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "orbsat:item/flat", - "textures": { - "layer0": "orbsat:items/classicSatellite_mkiii" - } -} diff --git a/src/main/resources/assets/orbsat/models/item/satellites/railgun.json b/src/main/resources/assets/orbsat/models/item/satellites/railgun.json deleted file mode 100644 index 31e836a..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/railgun.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent":"orbsat:item/flat", - "textures": { - "layer0":"orbsat:items/railgun" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/satellites/railgun.mtl b/src/main/resources/assets/orbsat/models/item/satellites/railgun.mtl deleted file mode 100644 index b4ad45b..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/railgun.mtl +++ /dev/null @@ -1,2 +0,0 @@ -newmtl railgun -map_Ka orbsat:items/railgun \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/models/item/satellites/railgun.obj b/src/main/resources/assets/orbsat/models/item/satellites/railgun.obj deleted file mode 100644 index 6149847..0000000 --- a/src/main/resources/assets/orbsat/models/item/satellites/railgun.obj +++ /dev/null @@ -1,2902 +0,0 @@ -# Model created by BluSunrize -mtllib railgun.mtl - -o frame -v -2.629441 0.468826 -0.187501 -v -2.673635 0.424632 -0.187501 -v -2.762024 0.513020 -0.187501 -v -2.673635 0.424632 -0.062503 -v -2.762024 0.513020 -0.062503 -v -2.762024 0.513020 0.187499 -v -2.717829 0.557214 0.187499 -v -2.629441 0.468826 0.187499 -v -2.673635 0.424632 0.187499 -v -2.717829 0.557214 0.062501 -v -2.762023 0.513020 0.062501 -v -2.673635 0.424632 0.062501 -v -2.629441 0.468826 0.062501 -v 0.062500 0.375000 -0.312500 -v -0.062500 0.375000 -0.187500 -v 0.062500 -0.000000 -0.312500 -v 0.062500 0.375000 0.312500 -v -0.062500 0.375000 0.187500 -v -0.062500 -0.000000 -0.187500 -v -2.187500 -0.062500 0.125000 -v -1.911611 -0.437500 -0.125000 -v -1.974111 -0.437500 0.125000 -v -1.411611 -0.437500 -0.125000 -v -1.349111 -0.375000 -0.125000 -v -1.411612 -0.375000 -0.125000 -v -1.349113 -0.062500 -0.125000 -v -1.536611 -0.500000 -0.125000 -v -1.536611 -0.562500 0.125000 -v -1.536611 -0.562500 -0.125000 -v -1.849112 -0.562500 -0.125000 -v 0.062500 -0.000000 -0.187500 -v 0.062500 0.125000 0.187500 -v -2.036610 -0.312500 -0.125000 -v -1.849111 -0.437500 0.125000 -v -1.849111 -0.500000 0.125000 -v -1.849111 -0.500000 -0.125000 -v -1.911612 -0.500000 0.125000 -v -1.411612 -0.375000 0.125000 -v -1.411612 -0.312500 0.125000 -v -1.411612 -0.312500 -0.125000 -v -1.286613 -0.062501 0.125000 -v -1.286613 -0.062501 -0.125000 -v -1.474111 -0.437500 0.125000 -v -1.474111 -0.375000 0.125000 -v -1.474111 -0.375000 -0.125000 -v -1.286612 -0.312500 0.125000 -v -1.474110 -0.500000 0.125000 -v -1.349112 -0.312500 0.125000 -v -1.536611 -0.500000 0.125000 -v -1.536611 -0.437500 0.125000 -v -1.349111 -0.062501 0.125000 -v -1.349112 -0.312500 -0.125000 -v -1.286612 -0.312500 -0.125000 -v -1.411611 -0.437500 0.125000 -v -1.911611 -0.375000 -0.125000 -v -2.187500 -0.062500 -0.125000 -v -1.849112 -0.562500 0.125000 -v -1.474111 -0.437500 -0.125000 -v 0.062500 0.125000 -0.187500 -v -2.187500 -0.000000 0.187500 -v -1.349111 -0.375000 0.125000 -v -2.187499 0.125000 -0.187500 -v -1.437500 0.750000 -0.250000 -v -1.437500 0.750000 0.250000 -v -1.437500 0.125000 -0.250000 -v -1.437500 0.125000 0.250000 -v -2.312500 0.625000 0.250000 -v -2.312500 0.625000 -0.250000 -v -2.312500 0.750000 0.250000 -v 1.812500 -0.000000 -0.187500 -v 1.812500 -0.062500 0.125000 -v 1.812500 -0.062500 -0.125000 -v -2.187499 0.125000 0.187500 -v 1.812500 -0.000000 0.187500 -v 0.062500 -0.000000 0.187500 -v -2.187501 -0.000000 -0.187500 -v -2.499900 0.125000 -0.281250 -v -1.937500 0.125000 -0.281250 -v -1.937500 0.312500 -0.281250 -v -2.562400 0.312500 -0.281250 -v -2.499900 0.125000 -0.250000 -v -1.937500 0.125000 -0.250000 -v -2.621859 0.227253 -0.281250 -v -2.224111 0.625000 -0.281250 -v -2.621859 0.227253 -0.250000 -v -2.224111 0.625000 -0.250000 -v -2.356694 0.757583 -0.250000 -v -2.754442 0.359835 -0.250000 -v -1.937500 0.312500 -0.250000 -v -2.562400 0.312500 -0.250000 -v -2.356694 0.757583 -0.281250 -v -2.754442 0.359835 -0.281250 -v -2.499900 0.125000 0.281250 -v -1.937500 0.125000 0.281250 -v -1.937500 0.312500 0.281250 -v -2.562400 0.312500 0.281250 -v -2.499900 0.125000 0.250000 -v -1.937500 0.125000 0.250000 -v -2.621859 0.227253 0.281250 -v -2.224111 0.625000 0.281250 -v -2.621859 0.227253 0.250000 -v -2.224111 0.625000 0.250000 -v -2.356694 0.757583 0.250000 -v -2.754442 0.359835 0.250000 -v -1.937500 0.312500 0.250000 -v -2.562400 0.312500 0.250000 -v -2.356694 0.757583 0.281250 -v -2.754442 0.359835 0.281250 -v -1.911611 -0.375000 0.125000 -v -1.911611 -0.437500 0.125000 -v -1.974110 -0.312500 -0.125000 -v -1.974110 -0.312500 0.125000 -v -1.974110 -0.375000 0.125000 -v -1.974110 -0.375000 -0.125000 -v -2.036611 -0.375000 0.125000 -v -2.099110 -0.312500 -0.125000 -v -2.036611 -0.062501 0.125000 -v -2.036610 -0.312500 0.125000 -v -2.099110 -0.312500 0.125000 -v -2.099109 -0.062501 -0.125000 -v -2.099109 -0.062501 0.125000 -v -2.036609 -0.062500 -0.125000 -v -2.036611 -0.375000 -0.125000 -v -1.724110 -0.062500 -0.062500 -v -1.786610 -0.062501 0.062500 -v -1.786610 -0.062501 -0.062500 -v -1.786611 -0.312500 0.062500 -v -1.974111 -0.437500 -0.125000 -v -1.724112 -0.062501 0.062500 -v -1.786611 -0.312500 -0.062500 -v -1.911612 -0.500000 -0.125000 -v -1.536611 -0.437500 -0.125000 -v -1.474110 -0.500000 -0.125000 -v -1.849111 -0.437500 -0.125000 -v -1.661611 -0.375000 -0.062500 -v -1.661612 -0.312500 -0.062500 -v -1.661612 -0.312500 0.062500 -v -1.724111 -0.375000 0.062500 -v -1.724111 -0.312500 0.062500 -v -1.724111 -0.312500 -0.062500 -v -1.661611 -0.375000 0.062500 -v -1.724111 -0.375000 -0.062500 -v 0.062500 -0.000000 0.312500 -v -0.062500 -0.000000 0.187500 -v -2.312500 0.750000 -0.250000 -v -2.437500 0.625000 -0.250000 -v -2.437500 0.625000 0.250000 -v -2.437500 0.125000 -0.250000 -v -2.437500 0.125000 0.250000 -v -2.312500 0.125000 -0.250000 -v -2.312500 0.125000 0.250000 -v -2.717829 0.557214 -0.062503 -v -2.629441 0.468826 -0.062503 -v -2.717829 0.557214 -0.187501 -vt 0.203125 0.453125 -vt 0.203125 0.484375 -vt 0.156250 0.484375 -vt 0.156250 0.453125 -vt 0.031250 0.625000 -vt 0.125000 0.625000 -vt 0.156250 0.656250 -vt 0.000000 0.656250 -vt 0.031250 0.640625 -vt 0.000000 0.640625 -vt 0.000000 0.546875 -vt 0.031250 0.546875 -vt 0.015625 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.484375 -vt 0.015625 0.484375 -vt 0.000000 0.468750 -vt 0.062500 0.468750 -vt 0.062500 0.484375 -vt 0.062500 0.500000 -vt 0.062500 0.515625 -vt 0.000000 0.515625 -vt 0.000000 0.531250 -vt 0.000000 0.453125 -vt 0.062500 0.453125 -vt 0.062500 0.531250 -vt 0.015625 0.531250 -vt 0.015625 0.468750 -vt 0.015625 0.453125 -vt 0.015625 0.515625 -vt 0.250000 0.328125 -vt 0.250000 0.171875 -vt 0.375000 0.171875 -vt 0.375000 0.328125 -vt 0.000000 0.328125 -vt 0.000000 0.203125 -vt 0.218750 0.203125 -vt 0.218750 0.328125 -vt 0.000000 0.046875 -vt 0.218750 0.046875 -vt 0.250000 0.296875 -vt 0.375000 0.296875 -vt 0.000000 0.687500 -vt 0.000000 0.781250 -vt 0.437500 0.781250 -vt 0.437500 0.687500 -vt 1.000000 0.687500 -vt 1.000000 0.656250 -vt 0.437500 0.656250 -vt 0.468750 0.687500 -vt 0.468750 0.781250 -vt 0.000000 0.765625 -vt 1.000000 0.765625 -vt 1.000000 0.781250 -vt 0.000000 0.703125 -vt 1.000000 0.703125 -vt 0.015625 0.703125 -vt 0.015625 0.765625 -vt 0.250000 0.156250 -vt 0.406250 0.171875 -vt 0.406250 0.156250 -vt 0.390625 0.109375 -vt 0.250000 0.109375 -vt 0.390625 0.171875 -vt 0.390625 0.156250 -vt 0.265625 0.156250 -vt 0.250000 0.125000 -vt 0.265625 0.125000 -vt 0.093750 0.468750 -vt 0.093750 0.531250 -vt 0.125000 0.531250 -vt 0.125000 0.468750 -vt 0.109375 0.500000 -vt 0.093750 0.500000 -vt 0.093750 0.484375 -vt 0.109375 0.484375 -vt 0.125000 0.484375 -vt 0.125000 0.500000 -vt 0.109375 0.468750 -vt 0.109375 0.531250 -vt 0.156250 0.640625 -vt 0.156250 0.546875 -vt 0.125000 0.546875 -vt 0.125000 0.640625 -vt 0.250000 0.203125 -vt 0.218750 0.171875 -vt 0.250000 0.046875 -vt 0.203125 0.500000 -vt 0.156250 0.500000 -usemtl railgun -f 8/1 9/2 12/3 13/4 -f 10/1 11/2 6/3 7/4 -f 9/3 8/4 7/1 6/2 -f 13/1 12/2 11/3 10/4 -f 15/5 18/6 17/7 14/8 -f 15/9 14/10 16/11 19/12 -f 23/13 58/14 45/15 25/16 -f 61/15 38/17 25/18 24/19 -f 114/20 111/21 112/22 113/14 -f 35/23 49/24 27/25 36/26 -f 38/19 54/20 23/14 25/15 -f 53/23 52/27 26/28 42/17 -f 49/24 35/23 57/27 28/29 -f 42/17 41/18 46/26 53/23 -f 29/23 27/22 49/21 28/26 -f 39/30 38/13 61/14 48/22 -f 43/20 47/21 133/22 58/14 -f 132/15 50/19 43/18 58/17 -f 27/18 49/17 50/15 132/19 -f 48/18 61/19 24/15 52/17 -f 53/17 46/18 48/19 52/15 -f 44/13 43/16 54/15 38/14 -f 58/19 43/15 44/14 45/20 -f 50/16 49/28 47/17 43/15 -f 48/23 46/27 41/28 51/17 -f 47/22 49/14 27/20 133/21 -f 45/14 44/20 38/19 25/15 -f 54/14 43/15 58/19 23/20 -f 51/17 26/18 52/26 48/23 -f 24/16 25/15 40/17 52/28 -f 30/24 36/29 27/27 29/23 -f 133/30 27/22 132/14 58/13 -f 64/31 66/32 65/33 63/34 -f 65/35 66/36 151/37 150/38 -f 66/39 64/36 69/37 151/40 -f 63/36 65/39 150/40 145/37 -f 69/34 145/31 68/41 67/42 -f 74/43 70/44 31/45 75/46 -f 73/47 60/48 75/49 32/46 -f 59/45 32/46 75/50 31/51 -f 62/47 59/46 31/49 76/48 -f 70/44 72/52 56/53 76/54 -f 71/55 74/43 60/47 20/56 -f 62/47 73/54 32/45 59/46 -f 71/57 72/58 70/44 74/43 -f 72/52 71/55 20/56 56/53 -f 78/59 82/32 81/60 77/61 -f 77/62 80/61 79/59 78/63 -f 84/64 86/65 85/59 83/32 -f 85/65 86/59 87/63 88/62 -f 80/61 90/60 89/32 79/59 -f 79/66 89/59 82/67 78/68 -f 81/62 82/63 89/59 90/61 -f 91/67 87/68 86/66 84/59 -f 83/62 92/65 91/59 84/63 -f 92/59 88/32 87/64 91/65 -f 94/59 93/61 97/60 98/32 -f 93/62 94/63 95/59 96/61 -f 100/64 99/32 101/59 102/65 -f 101/65 104/62 103/63 102/59 -f 96/61 95/59 105/32 106/60 -f 95/66 94/68 98/67 105/59 -f 107/67 100/59 102/66 103/68 -f 99/62 100/63 107/59 108/65 -f 108/59 107/65 103/64 104/32 -f 25/20 38/14 39/22 40/21 -f 34/16 110/15 37/17 35/28 -f 40/22 39/21 48/20 52/14 -f 109/13 113/14 22/15 110/16 -f 29/23 28/26 57/25 30/24 -f 35/23 36/26 30/21 57/22 -f 126/69 130/70 127/71 125/72 -f 112/30 118/22 115/14 113/13 -f 111/22 33/14 118/20 112/21 -f 36/18 134/19 34/15 35/17 -f 123/16 33/28 111/17 114/15 -f 117/17 118/23 33/26 122/18 -f 22/14 128/20 21/19 110/15 -f 55/14 114/15 113/19 109/20 -f 118/23 117/17 121/28 119/27 -f 21/19 55/20 109/14 110/15 -f 116/17 33/15 118/19 119/18 -f 118/18 33/17 123/15 115/19 -f 37/22 131/21 36/20 35/14 -f 134/15 21/17 110/18 34/19 -f 110/20 21/14 131/22 37/21 -f 131/30 21/13 134/14 36/22 -f 120/17 116/23 119/26 121/18 -f 116/23 120/17 122/28 33/27 -f 113/19 114/15 128/14 22/20 -f 115/15 123/19 114/18 113/17 -f 128/13 114/16 55/15 21/14 -f 135/73 142/74 140/75 136/76 -f 137/77 141/78 135/74 136/75 -f 139/73 138/76 141/75 137/74 -f 142/77 138/75 139/74 140/78 -f 140/74 139/78 137/77 136/75 -f 141/74 138/75 142/77 135/78 -f 130/70 126/69 124/79 140/80 -f 130/69 140/75 139/77 127/72 -f 139/70 129/69 125/79 127/80 -f 129/69 139/70 140/71 124/72 -f 19/5 16/8 143/7 144/6 -f 18/81 144/82 143/83 17/84 -f 147/42 146/41 148/32 149/33 -f 150/38 151/37 149/85 148/31 -f 64/35 63/36 145/37 69/38 -f 68/86 150/40 148/87 146/32 -f 151/40 67/86 147/32 149/87 -f 67/38 68/37 146/85 147/31 -f 10/4 7/1 8/88 13/89 -f 1/1 2/2 3/3 154/4 -f 4/3 153/4 152/1 5/2 -f 154/1 3/2 5/3 152/4 -f 153/1 4/2 2/3 1/4 -f 154/4 152/1 153/88 1/89 - -o barrel -v 4.062499 0.375000 -0.437499 -v 0.062500 -0.000000 -0.187500 -v 0.062500 0.375000 -0.187500 -v 0.062500 -0.000000 -0.437500 -v 0.062500 0.375000 -0.437500 -v 4.062499 0.312500 -0.499999 -v 4.062499 0.062500 -0.499999 -v 0.062500 0.312500 -0.500000 -v 4.062499 -0.000000 -0.437499 -v 0.062500 0.062500 -0.500000 -v 4.062499 0.250000 -0.437499 -v 0.062500 0.250000 -0.437500 -v 4.062499 0.125000 -0.187499 -v 0.062500 0.125000 -0.187500 -v 0.062500 0.125000 -0.437500 -v 4.062499 0.125000 -0.437499 -v 4.062499 0.187500 -0.312499 -v 4.062499 0.187500 -0.249999 -v 4.062499 0.125000 -0.249999 -v 4.062499 0.125000 -0.312499 -v 3.812499 0.250000 -0.312499 -v 3.562499 0.125000 -0.249999 -v 0.062500 0.125000 -0.375000 -v 4.062499 0.125000 -0.374999 -v 3.812499 0.187500 -0.249999 -v 3.999998 0.375000 -0.124999 -v 3.999998 0.375000 -0.187499 -v 4.062499 -0.000000 -0.187499 -v 4.062499 -0.000000 -0.124999 -v 3.999998 -0.000000 -0.124999 -v 3.999998 -0.000000 -0.187499 -v 4.062499 0.375000 -0.187499 -v 4.062499 0.375000 -0.124999 -v 3.187498 0.437500 0.250001 -v 3.062497 0.250000 -0.437500 -v 3.937498 0.437500 -0.249999 -v 3.062497 0.437500 0.250001 -v 3.937498 0.562500 0.250001 -v 3.812497 0.562500 -0.249999 -v 3.812497 0.562500 0.250001 -v 3.937498 0.562500 -0.249999 -v 3.812497 0.375000 -0.437499 -v 3.937498 0.375000 -0.437499 -v 3.062497 0.375000 0.437500 -v 3.937498 0.375000 0.437501 -v 3.812497 0.375000 0.437501 -v 3.062497 0.562500 0.250000 -v 3.062497 0.562500 -0.250000 -v 3.187498 0.562500 0.250001 -v 3.187498 0.437500 -0.250000 -v 3.437498 0.437500 -0.250000 -v 3.437498 0.562500 0.250001 -v 3.312497 0.562500 -0.250000 -v 3.312497 0.562500 0.250001 -v 3.437498 0.562500 -0.250000 -v 3.312497 0.375000 -0.437499 -v 3.437498 0.375000 -0.437499 -v 3.437498 0.375000 0.437501 -v 3.687498 0.375000 0.437501 -v 3.562497 0.375000 0.437501 -v 3.312497 0.375000 0.437501 -v 3.312497 0.437500 0.250001 -v 3.312497 0.250000 -0.437499 -v 3.437498 0.437500 0.250001 -v 3.312497 0.437500 -0.249999 -v 3.437498 0.250000 -0.437499 -v 3.437498 0.250000 0.437501 -v 3.312497 0.250000 0.437501 -v 3.562497 0.250000 0.437501 -v 3.687498 0.250000 0.437501 -v 3.687498 0.250000 -0.437499 -v 3.562497 0.437500 -0.249999 -v 3.687498 0.437500 0.250001 -v 3.562497 0.250000 -0.437499 -v 3.562497 0.437500 0.250001 -v 3.687498 0.375000 -0.437499 -v 3.562497 0.375000 -0.437499 -v 3.687498 0.562500 -0.249999 -v 3.562497 0.562500 0.250001 -v 3.562497 0.562500 -0.249999 -v 3.687498 0.562500 0.250001 -v 3.687498 0.437500 -0.249999 -v 4.062499 0.250000 -0.187499 -v 4.062499 0.250000 -0.374999 -v 0.062500 0.250000 -0.187500 -v 0.062500 0.250000 -0.375000 -v 3.562499 0.187500 -0.249999 -v 3.562499 0.125000 -0.312499 -v 3.812499 0.250000 -0.249999 -v 3.812499 0.187500 -0.312499 -v 3.562499 0.187500 -0.312499 -v 3.312499 0.250000 -0.312500 -v 3.312499 0.187500 -0.249999 -v 3.062499 0.125000 -0.312500 -v 3.312499 0.250000 -0.249999 -v 3.312499 0.187500 -0.312499 -v 3.062499 0.125000 -0.250000 -v 3.062499 0.187500 -0.250000 -v 3.062499 0.187500 -0.312500 -v 2.812499 0.250000 -0.312500 -v 2.812499 0.187500 -0.250000 -v 2.562499 0.125000 -0.250000 -v 2.562499 0.125000 -0.312500 -v 2.812499 0.250000 -0.250000 -v 2.812499 0.187500 -0.312500 -v 2.562499 0.187500 -0.250000 -v 2.562499 0.187500 -0.312500 -v 2.312499 0.250000 -0.312500 -v 2.312499 0.187500 -0.250000 -v 2.062499 0.187500 -0.312500 -v 2.062499 0.187500 -0.250000 -v 2.062499 0.125000 -0.250000 -v 2.312499 0.250000 -0.250000 -v 2.312499 0.187500 -0.312500 -v 2.062499 0.125000 -0.312500 -v 1.812499 0.250000 -0.312500 -v 1.812499 0.187500 -0.250000 -v 1.562499 0.187500 -0.312500 -v 1.562499 0.187500 -0.250000 -v 1.812499 0.250000 -0.250000 -v 1.812499 0.187500 -0.312500 -v 1.562499 0.125000 -0.312500 -v 1.562499 0.125000 -0.250000 -v 1.312499 0.250000 -0.312500 -v 1.312499 0.187500 -0.250000 -v 1.062499 0.187500 -0.250000 -v 1.062499 0.125000 -0.312500 -v 1.312499 0.250000 -0.250000 -v 1.312499 0.187500 -0.312500 -v 1.062499 0.125000 -0.250000 -v 1.062499 0.187500 -0.312500 -v 0.812499 0.250000 -0.312500 -v 0.812499 0.187500 -0.250000 -v 0.562499 0.187500 -0.250000 -v 0.562499 0.125000 -0.312500 -v 0.812499 0.250000 -0.250000 -v 0.812499 0.187500 -0.312500 -v 0.562499 0.125000 -0.250000 -v 0.562499 0.187500 -0.312500 -v 0.312499 0.250000 -0.312500 -v 0.312499 0.187500 -0.250000 -v 0.062499 0.187500 -0.250000 -v 0.312499 0.250000 -0.250000 -v 0.312499 0.187500 -0.312500 -v 0.062499 0.187500 -0.312500 -v 0.062499 0.125000 -0.250000 -v 0.062499 0.125000 -0.312500 -v 3.812497 0.437500 0.250001 -v 3.812497 0.250000 -0.437499 -v 3.187498 0.375000 0.437500 -v 3.937498 0.437500 0.250001 -v 3.812497 0.437500 -0.249999 -v 3.187498 0.375000 -0.437499 -v 3.062497 0.375000 -0.437500 -v 3.187498 0.562500 -0.250000 -v 3.937498 0.250000 -0.437499 -v 3.937498 0.250000 0.437501 -v 3.812497 0.250000 0.437501 -v 3.062497 0.437500 -0.250000 -v 3.187498 0.250000 -0.437499 -v 3.187498 0.250000 0.437501 -v 3.062497 0.250000 0.437500 -v 4.062499 0.375000 0.437501 -v 0.062500 -0.000000 0.187500 -v 0.062500 0.375000 0.187500 -v 0.062500 -0.000000 0.437500 -v 0.062500 0.375000 0.437500 -v 4.062499 0.312500 0.500001 -v 4.062499 0.062500 0.500001 -v 0.062500 0.312500 0.500000 -v 4.062499 -0.000000 0.437501 -v 0.062500 0.062500 0.500000 -v 4.062499 0.250000 0.437501 -v 0.062500 0.250000 0.437500 -v 4.062499 0.125000 0.187501 -v 0.062500 0.125000 0.187500 -v 0.062500 0.125000 0.437500 -v 4.062499 0.125000 0.437501 -v 4.062499 0.187500 0.312501 -v 4.062499 0.187500 0.250001 -v 4.062499 0.125000 0.250001 -v 4.062499 0.125000 0.312501 -v 3.812499 0.250000 0.312501 -v 3.562499 0.125000 0.250001 -v 0.062500 0.125000 0.375000 -v 4.062499 0.125000 0.375001 -v 3.812499 0.187500 0.250001 -v 3.999998 0.375000 0.125001 -v 3.999998 0.375000 0.187501 -v 4.062499 -0.000000 0.187501 -v 4.062499 -0.000000 0.125001 -v 3.999998 -0.000000 0.125001 -v 3.999998 -0.000000 0.187501 -v 4.062499 0.375000 0.187501 -v 4.062499 0.375000 0.125001 -v 4.062499 0.250000 0.187501 -v 4.062499 0.250000 0.375001 -v 0.062500 0.250000 0.187500 -v 0.062500 0.250000 0.375000 -v 3.562499 0.187500 0.250001 -v 3.562499 0.125000 0.312501 -v 3.812499 0.250000 0.250001 -v 3.812499 0.187500 0.312501 -v 3.562499 0.187500 0.312501 -v 3.312499 0.250000 0.312500 -v 3.312499 0.187500 0.250001 -v 3.062499 0.125000 0.312500 -v 3.312499 0.250000 0.250001 -v 3.312499 0.187500 0.312501 -v 3.062499 0.125000 0.250000 -v 3.062499 0.187500 0.250000 -v 3.062499 0.187500 0.312500 -v 2.812499 0.250000 0.312500 -v 2.812499 0.187500 0.250000 -v 2.562499 0.125000 0.250000 -v 2.562499 0.125000 0.312500 -v 2.812499 0.250000 0.250000 -v 2.812499 0.187500 0.312500 -v 2.562499 0.187500 0.250000 -v 2.562499 0.187500 0.312500 -v 2.312499 0.250000 0.312500 -v 2.312499 0.187500 0.250000 -v 2.062499 0.187500 0.312500 -v 2.062499 0.187500 0.250000 -v 2.062499 0.125000 0.250000 -v 2.312499 0.250000 0.250000 -v 2.312499 0.187500 0.312500 -v 2.062499 0.125000 0.312500 -v 1.812499 0.250000 0.312500 -v 1.812499 0.187500 0.250000 -v 1.562499 0.187500 0.312500 -v 1.562499 0.187500 0.250000 -v 1.812499 0.250000 0.250000 -v 1.812499 0.187500 0.312500 -v 1.562499 0.125000 0.312500 -v 1.562499 0.125000 0.250000 -v 1.312499 0.250000 0.312500 -v 1.312499 0.187500 0.250000 -v 1.062499 0.187500 0.250000 -v 1.062499 0.125000 0.312500 -v 1.312499 0.250000 0.250000 -v 1.312499 0.187500 0.312500 -v 1.062499 0.125000 0.250000 -v 1.062499 0.187500 0.312500 -v 0.812499 0.250000 0.312500 -v 0.812499 0.187500 0.250000 -v 0.562499 0.187500 0.250000 -v 0.562499 0.125000 0.312500 -v 0.812499 0.250000 0.250000 -v 0.812499 0.187500 0.312500 -v 0.562499 0.125000 0.250000 -v 0.562499 0.187500 0.312500 -v 0.312499 0.250000 0.312500 -v 0.312499 0.187500 0.250000 -v 0.062499 0.187500 0.250000 -v 0.312499 0.250000 0.250000 -v 0.312499 0.187500 0.312500 -v 0.062499 0.187500 0.312500 -v 0.062499 0.125000 0.250000 -v 0.062499 0.125000 0.312500 -vt 1.000000 0.578125 -vt 1.000000 0.625000 -vt 0.000000 0.625000 -vt 0.000000 0.578125 -vt 0.000000 0.921875 -vt 0.000000 0.859375 -vt 1.000000 0.859375 -vt 1.000000 0.921875 -vt 0.921875 0.531250 -vt 0.921875 0.468750 -vt 0.937500 0.453125 -vt 0.937500 0.546875 -vt 0.000000 0.937500 -vt 1.000000 0.937500 -vt 0.156250 0.531250 -vt 0.140625 0.546875 -vt 0.140625 0.453125 -vt 0.156250 0.468750 -vt 0.000000 0.843750 -vt 1.000000 0.843750 -vt 0.937500 0.515625 -vt 1.000000 0.515625 -vt 1.000000 0.546875 -vt 0.000000 0.531250 -vt 0.015625 0.531250 -vt 0.015625 0.546875 -vt 0.000000 0.546875 -vt 0.062500 0.546875 -vt 0.062500 0.453125 -vt 0.078125 0.453125 -vt 0.078125 0.546875 -vt 0.062500 0.468750 -vt 0.078125 0.468750 -vt 0.140625 0.484375 -vt 0.078125 0.484375 -vt 1.000000 0.656250 -vt 0.000000 0.656250 -vt 0.000000 0.781250 -vt 1.000000 0.781250 -vt 0.062500 0.531250 -vt 0.078125 0.531250 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.312500 0.375000 -vt 0.312500 0.500000 -vt 0.281250 0.500000 -vt 0.281250 0.375000 -vt 0.281250 0.328125 -vt 0.312500 0.328125 -vt 0.312500 0.546875 -vt 0.281250 0.546875 -vt 0.500000 0.500000 -vt 0.468750 0.500000 -vt 0.468750 0.546875 -vt 0.500000 0.546875 -vt 0.500000 0.375000 -vt 0.468750 0.375000 -vt 0.500000 0.328125 -vt 0.468750 0.328125 -vt 0.437500 0.375000 -vt 0.437500 0.500000 -vt 0.437500 0.546875 -vt 0.437500 0.328125 -vt 0.406250 0.500000 -vt 0.406250 0.375000 -vt 0.406250 0.328125 -vt 0.406250 0.546875 -vt 0.375000 0.375000 -vt 0.375000 0.500000 -vt 0.375000 0.546875 -vt 0.375000 0.328125 -vt 0.343750 0.500000 -vt 0.343750 0.546875 -vt 0.343750 0.375000 -vt 0.343750 0.328125 -vt 1.000000 0.484375 -vt 0.937500 0.484375 -vt 1.000000 0.453125 -vt 0.140625 0.515625 -vt 0.125000 0.515625 -vt 0.125000 0.484375 -vt 0.953125 0.484375 -vt 0.953125 0.515625 -vt 0.078125 0.515625 -vt 0.046875 0.531250 -vt 0.046875 0.546875 -vt 0.250000 0.375000 -vt 0.250000 0.500000 -vt 0.250000 0.546875 -vt 0.250000 0.328125 -usemtl railgun -f 239/90 240/91 238/92 237/93 -f 160/94 161/95 164/96 162/97 -f 162/98 164/99 158/100 159/101 -f 155/102 160/94 162/97 159/103 -f 160/104 155/105 163/106 161/107 -f 161/95 163/108 158/109 164/96 -f 158/110 156/111 168/112 169/101 -f 171/113 172/114 173/115 174/116 -f 180/117 184/118 183/119 187/120 -f 185/121 182/118 183/119 184/122 -f 181/117 185/118 184/119 180/120 -f 182/119 163/106 170/123 167/124 -f 156/125 182/126 167/92 168/91 -f 182/127 156/128 158/109 163/108 -f 181/120 180/117 187/129 186/130 -f 186/117 182/118 185/119 181/120 -f 155/102 159/103 157/131 186/132 -f 187/117 183/118 182/119 186/120 -f 193/133 194/134 192/135 195/136 -f 195/136 197/137 196/138 193/133 -f 194/134 200/139 199/140 192/135 -f 191/141 188/142 315/143 316/144 -f 313/145 204/146 188/142 191/141 -f 204/146 313/145 189/147 314/148 -f 313/149 191/150 201/142 202/146 -f 201/142 191/150 316/151 198/143 -f 313/149 202/146 308/148 189/152 -f 204/149 314/152 307/148 309/146 -f 203/142 304/143 315/151 188/150 -f 204/149 309/146 203/142 188/150 -f 201/141 198/144 304/143 203/142 -f 309/146 307/148 308/147 202/145 -f 202/145 201/141 203/142 309/146 -f 207/149 208/150 206/153 209/154 -f 209/154 211/155 210/152 207/149 -f 208/150 215/151 212/156 206/153 -f 205/157 209/154 206/153 218/158 -f 206/153 212/156 221/159 218/158 -f 205/157 220/160 211/155 209/154 -f 219/157 207/154 210/155 217/160 -f 208/153 216/158 222/159 215/156 -f 219/157 216/158 208/153 207/154 -f 205/154 219/149 217/152 220/155 -f 219/149 205/154 218/153 216/150 -f 216/150 218/153 221/156 222/151 -f 229/158 227/161 224/162 223/159 -f 226/157 236/163 227/161 229/158 -f 236/163 226/157 228/160 225/164 -f 226/133 229/134 233/161 234/163 -f 226/133 234/163 231/164 228/138 -f 236/133 225/138 230/164 232/163 -f 236/133 232/163 235/161 227/134 -f 232/163 230/164 231/160 234/157 -f 234/157 233/158 235/161 232/163 -f 157/165 159/166 166/100 239/167 -f 168/90 167/93 178/92 177/91 -f 165/168 238/169 178/170 170/123 -f 177/90 178/93 238/116 240/112 -f 169/166 177/171 240/172 166/110 -f 186/92 157/91 239/125 237/126 -f 155/105 186/120 237/173 165/168 -f 175/117 171/116 174/113 244/129 -f 173/113 179/129 244/117 174/116 -f 175/117 243/129 172/113 171/116 -f 172/116 243/117 179/129 173/113 -f 256/129 257/117 259/116 255/113 -f 252/116 258/117 255/129 251/113 -f 254/117 258/129 252/113 253/116 -f 265/117 266/129 263/113 267/116 -f 262/116 264/117 265/129 267/113 -f 262/117 267/129 260/113 261/116 -f 270/116 272/117 273/129 274/113 -f 277/113 279/129 283/117 276/116 -f 252/117 251/129 247/113 249/116 -f 246/116 253/117 252/129 249/113 -f 251/129 248/117 250/116 247/113 -f 246/116 250/113 248/129 253/117 -f 241/116 249/117 247/129 176/113 -f 246/117 249/129 241/113 245/116 -f 176/113 247/129 250/117 242/116 -f 246/117 245/116 242/113 250/129 -f 175/116 244/113 242/129 245/117 -f 176/129 242/117 244/116 179/113 -f 175/116 245/117 241/129 243/113 -f 241/117 176/129 179/113 243/116 -f 260/117 256/129 255/113 258/116 -f 254/116 261/117 260/129 258/113 -f 254/116 259/113 257/129 261/117 -f 251/113 255/129 259/117 248/116 -f 254/117 253/116 248/113 259/129 -f 266/129 269/117 268/116 263/113 -f 262/116 268/113 269/129 264/117 -f 260/116 267/117 263/129 256/113 -f 256/113 263/129 268/117 257/116 -f 262/117 261/116 257/113 268/129 -f 273/117 277/129 271/113 274/116 -f 277/129 276/117 275/116 271/113 -f 270/116 275/113 276/129 272/117 -f 265/116 274/117 271/129 266/113 -f 270/117 274/129 265/113 264/116 -f 266/113 271/129 275/117 269/116 -f 270/117 264/116 269/113 275/129 -f 280/117 284/129 279/113 282/116 -f 278/116 285/117 280/129 282/113 -f 284/129 281/117 283/116 279/113 -f 278/116 283/113 281/129 285/117 -f 273/116 282/117 279/129 277/113 -f 278/117 282/129 273/113 272/116 -f 278/117 272/116 276/113 283/129 -f 288/117 292/129 287/113 290/116 -f 286/116 293/117 288/129 290/113 -f 292/129 289/117 291/116 287/113 -f 286/116 291/113 289/129 293/117 -f 280/116 290/117 287/129 284/113 -f 286/117 290/129 280/113 285/116 -f 284/113 287/129 291/117 281/116 -f 286/117 285/116 281/113 291/129 -f 288/116 297/117 295/129 292/113 -f 294/117 297/129 288/113 293/116 -f 292/113 295/129 298/117 289/116 -f 294/117 293/116 289/113 298/129 -f 296/117 300/129 295/113 297/116 -f 294/116 299/117 296/129 297/113 -f 300/129 301/117 298/116 295/113 -f 294/116 298/113 301/129 299/117 -f 299/174 301/175 300/117 296/129 -f 233/158 214/159 213/162 235/161 -f 235/161 213/162 224/139 227/134 -f 233/161 229/134 223/139 214/162 -f 190/176 195/136 192/135 305/177 -f 192/135 199/140 311/178 305/177 -f 190/176 310/179 197/137 195/136 -f 306/176 193/136 196/137 303/179 -f 194/135 302/177 312/178 200/140 -f 306/176 302/177 194/135 193/136 -f 190/136 306/133 303/138 310/137 -f 306/133 190/136 305/135 302/134 -f 302/134 305/135 311/140 312/139 -f 352/90 350/93 351/92 353/91 -f 322/94 324/97 326/96 323/95 -f 324/98 321/101 320/100 326/99 -f 317/102 321/103 324/97 322/94 -f 322/104 323/107 325/106 317/105 -f 323/95 326/96 320/109 325/108 -f 320/110 331/101 330/112 318/111 -f 333/113 336/116 335/115 334/114 -f 342/117 349/120 345/119 346/118 -f 347/121 346/122 345/119 344/118 -f 343/117 342/120 346/119 347/118 -f 344/119 329/124 332/123 325/106 -f 318/125 330/91 329/92 344/126 -f 344/127 325/108 320/109 318/128 -f 343/120 348/130 349/129 342/117 -f 348/117 343/120 347/119 344/118 -f 317/102 348/132 319/131 321/103 -f 349/117 348/120 344/119 345/118 -f 319/165 352/167 328/100 321/166 -f 330/90 339/91 340/92 329/93 -f 327/168 332/123 340/170 351/169 -f 339/90 353/112 351/116 340/93 -f 331/166 328/110 353/172 339/171 -f 348/126 350/92 352/91 319/125 -f 317/105 327/168 350/173 348/120 -f 337/117 357/129 336/113 333/116 -f 335/113 336/116 357/117 341/129 -f 337/117 333/116 334/113 356/129 -f 334/116 335/113 341/129 356/117 -f 369/129 368/113 372/116 370/117 -f 365/116 364/113 368/129 371/117 -f 367/117 366/116 365/113 371/129 -f 378/117 380/116 376/113 379/129 -f 375/116 380/113 378/129 377/117 -f 375/117 374/116 373/113 380/129 -f 383/116 387/113 386/129 385/117 -f 390/113 389/116 396/117 392/129 -f 365/117 362/116 360/113 364/129 -f 359/116 362/113 365/129 366/117 -f 364/129 360/113 363/116 361/117 -f 359/116 366/117 361/129 363/113 -f 354/116 338/113 360/129 362/117 -f 359/117 358/116 354/113 362/129 -f 338/113 355/116 363/117 360/129 -f 359/117 363/129 355/113 358/116 -f 337/116 358/117 355/129 357/113 -f 338/129 341/113 357/116 355/117 -f 337/116 356/113 354/129 358/117 -f 354/117 356/116 341/113 338/129 -f 373/117 371/116 368/113 369/129 -f 367/116 371/113 373/129 374/117 -f 367/116 374/117 370/129 372/113 -f 364/113 361/116 372/117 368/129 -f 367/117 372/129 361/113 366/116 -f 379/129 376/113 381/116 382/117 -f 375/116 377/117 382/129 381/113 -f 373/116 369/113 376/129 380/117 -f 369/113 370/116 381/117 376/129 -f 375/117 381/129 370/113 374/116 -f 386/117 387/116 384/113 390/129 -f 390/129 384/113 388/116 389/117 -f 383/116 385/117 389/129 388/113 -f 378/116 379/113 384/129 387/117 -f 383/117 377/116 378/113 387/129 -f 379/113 382/116 388/117 384/129 -f 383/117 388/129 382/113 377/116 -f 393/117 395/116 392/113 397/129 -f 391/116 395/113 393/129 398/117 -f 397/129 392/113 396/116 394/117 -f 391/116 398/117 394/129 396/113 -f 386/116 390/113 392/129 395/117 -f 391/117 385/116 386/113 395/129 -f 391/117 396/129 389/113 385/116 -f 401/117 403/116 400/113 405/129 -f 399/116 403/113 401/129 406/117 -f 405/129 400/113 404/116 402/117 -f 399/116 406/117 402/129 404/113 -f 393/116 397/113 400/129 403/117 -f 399/117 398/116 393/113 403/129 -f 397/113 394/116 404/117 400/129 -f 399/117 404/129 394/113 398/116 -f 401/116 405/113 408/129 410/117 -f 407/117 406/116 401/113 410/129 -f 405/113 402/116 411/117 408/129 -f 407/117 411/129 402/113 406/116 -f 409/117 410/116 408/113 413/129 -f 407/116 410/113 409/129 412/117 -f 413/129 408/113 411/116 414/117 -f 407/116 412/117 414/129 411/113 -f 412/174 409/129 413/117 414/175 - -o grip -v -2.275888 -0.149893 -0.250000 -v -2.275888 -0.149893 -0.187500 -v -3.099493 -0.942248 -0.187500 -v -2.762024 0.336243 -0.187500 -v -2.762024 0.336243 -0.250000 -v -3.585629 -0.492723 -0.250000 -v -3.099493 -0.942248 -0.250000 -v -3.585629 -0.492723 -0.187500 -v -2.099111 -0.149893 -0.312500 -v -2.099111 -0.149893 0.312500 -v -2.187500 -0.238281 0.312500 -v -2.762024 0.513020 0.312499 -v -2.762024 0.513020 -0.312501 -v -2.850413 0.424631 -0.312501 -v -2.187500 -0.238281 -0.312500 -v -2.850413 0.424631 0.312499 -v -2.231694 -0.194087 -0.187500 -v -2.806218 0.380437 -0.187500 -v -3.042354 -1.004748 -0.187500 -v -3.585629 -0.492723 0.187500 -v -3.099493 -0.942248 0.250000 -v -3.585629 -0.492723 0.250000 -v -2.762024 0.336243 0.250000 -v -2.762024 0.336243 0.187500 -v -3.099493 -0.942248 0.187500 -v -2.275888 -0.149893 0.187500 -v -2.275888 -0.149893 0.250000 -v 1.812500 -0.562500 0.156250 -v 1.812500 0.000000 0.156250 -v 1.812500 -0.000000 -0.156250 -v 0.500000 -0.000000 -0.156250 -v 0.375000 -0.000000 -0.156250 -v 1.937500 -0.000000 -0.156250 -v 1.937500 0.000000 0.156250 -v 1.937500 -0.562500 0.156250 -v 1.937500 -0.562500 -0.156250 -v 1.812500 -0.562500 -0.156250 -v 1.812500 -0.062500 0.125000 -v 0.500000 -0.062500 0.125000 -v 0.500000 -0.500000 0.125000 -v 1.812500 -0.500000 0.125000 -v 0.500000 -0.062500 -0.125000 -v 1.812500 -0.062500 -0.125000 -v 1.812500 -0.500000 -0.125000 -v 0.500000 -0.500000 -0.125000 -v 0.375000 -0.562500 -0.156250 -v 0.500000 -0.562500 -0.156250 -v -4.500000 -0.129748 -0.250001 -v 0.500000 -0.562500 0.156250 -v 0.375000 0.000000 0.156250 -v 0.375000 -0.562500 0.156250 -v 0.500000 0.000000 0.156250 -v -5.312500 -0.129748 -0.250001 -v -5.312500 -0.879648 -0.250001 -v -2.437500 0.750000 0.250000 -v -3.616879 -0.430223 0.187500 -v -5.437500 -0.004748 -0.187501 -v -3.937500 -0.430223 -0.187500 -v -4.500000 -0.879648 -0.250001 -v -4.000000 -0.879648 -0.250000 -v -5.437500 -1.004748 -0.187501 -v -4.437500 -1.004748 -0.187501 -v -3.937500 -1.004748 -0.187500 -v -3.042354 -1.004748 0.187500 -v -3.937500 -1.004748 0.187500 -v -5.437500 -1.004748 0.187499 -v -4.437500 -1.004748 0.187499 -v -3.616879 -0.430223 -0.187500 -v -5.437500 -0.004748 0.187499 -v -4.437500 -0.004748 -0.187501 -v -3.937500 -0.430223 0.187500 -v -4.937500 -0.129748 -0.250001 -v -4.937500 -0.879648 -0.250001 -v -3.584323 -0.551723 -0.250000 -v -3.222759 -0.886057 -0.250000 -v -4.000000 -0.555223 -0.250001 -v -4.000000 -0.492723 -0.250001 -v -4.500000 -0.067248 -0.250001 -v -5.375000 -0.067248 -0.250001 -v -5.375000 -0.942248 -0.250001 -v -4.500000 -0.942248 -0.250001 -v -4.000000 -0.942248 -0.250001 -v -4.000000 -0.942248 -0.187500 -v -5.375000 -0.942248 -0.187501 -v -4.500000 -0.942248 -0.187500 -v -4.500000 -0.067248 -0.187501 -v -5.375000 -0.067248 -0.187501 -v -4.000000 -0.492723 -0.187501 -v -3.553697 -0.493405 -0.187500 -v -2.231694 -0.194087 0.187500 -v -2.806218 0.380437 0.187500 -v -4.500000 -0.129748 0.250000 -v -5.312500 -0.129748 0.249999 -v -5.312500 -0.879648 0.249999 -v -4.500000 -0.879648 0.249999 -v -4.000000 -0.879648 0.250000 -v -4.437500 -0.004748 0.187499 -v -4.937500 -0.129748 0.250000 -v -4.937500 -0.879648 0.249999 -v -3.584323 -0.551723 0.250000 -v -3.222759 -0.886057 0.250000 -v -4.000000 -0.555223 0.250000 -v -4.000000 -0.492723 0.250000 -v -4.500000 -0.067248 0.249999 -v -5.375000 -0.067248 0.249999 -v -5.375000 -0.942248 0.249999 -v -4.500000 -0.942248 0.249999 -v -4.000000 -0.942248 0.250000 -v -4.000000 -0.942248 0.187500 -v -5.375000 -0.942248 0.187499 -v -4.500000 -0.942248 0.187499 -v -4.500000 -0.067248 0.187499 -v -5.375000 -0.067248 0.187499 -v -4.000000 -0.492723 0.187500 -v -3.553697 -0.493404 0.187500 -vt 0.562500 0.031250 -vt 0.562500 0.000000 -vt 0.796875 0.000000 -vt 0.796875 0.031250 -vt 0.609375 0.250000 -vt 0.609375 0.421875 -vt 0.593750 0.421875 -vt 0.593750 0.250000 -vt 0.781250 0.203125 -vt 0.781250 0.515625 -vt 0.609375 0.515625 -vt 0.609375 0.203125 -vt 0.593750 0.515625 -vt 0.593750 0.203125 -vt 0.796875 0.187500 -vt 0.562500 0.187500 -vt 0.656250 0.468750 -vt 0.765625 0.468750 -vt 0.765625 0.281250 -vt 0.656250 0.281250 -vt 0.640625 0.031250 -vt 0.640625 0.000000 -vt 0.500000 0.187500 -vt 0.421875 0.187500 -vt 0.421875 0.328125 -vt 0.500000 0.328125 -vt 0.750000 0.546875 -vt 0.750000 0.218750 -vt 0.640625 0.218750 -vt 0.640625 0.546875 -vt 0.578125 0.515625 -vt 0.515625 0.515625 -vt 0.515625 0.187500 -vt 0.578125 0.187500 -vt 0.500000 0.156250 -vt 0.421875 0.156250 -vt 0.390625 0.187500 -vt 0.390625 0.328125 -vt 0.593750 0.500000 -vt 0.593750 0.187500 -vt 0.796875 0.500000 -vt 0.765625 0.218750 -vt 0.781250 0.234375 -vt 0.781250 0.468750 -vt 0.781250 0.328125 -vt 0.781250 0.453125 -vt 0.765625 0.328125 -vt 0.593750 0.437500 -vt 0.500000 0.437500 -vt 0.593750 0.406250 -vt 0.500000 0.406250 -vt 0.593750 0.312500 -vt 0.500000 0.312500 -vt 0.500000 0.265625 -vt 0.593750 0.265625 -vt 0.781250 0.343750 -vt 0.796875 0.328125 -vt 0.796875 0.453125 -vt 0.781250 0.218750 -vt 0.796875 0.234375 -vt 0.640625 0.468750 -vt 0.640625 0.281250 -vt 0.750000 0.281250 -vt 0.750000 0.468750 -vt 0.781250 0.265625 -vt 0.765625 0.234375 -vt 0.640625 0.375000 -vt 0.750000 0.390625 -vt 0.656250 0.515625 -vt 0.625000 0.218750 -vt 0.781250 0.484375 -vt 0.796875 0.484375 -vt 0.796875 0.218750 -vt 0.796875 0.468750 -vt 0.781250 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.421875 -vt 0.781250 0.421875 -vt 0.796875 0.343750 -vt 0.781250 0.250000 -vt 0.781250 0.296875 -vt 0.796875 0.296875 -vt 0.781250 0.359375 -vt 0.500000 0.500000 -vt 0.500000 0.343750 -vt 0.593750 0.343750 -usemtl railgun -f 428/180 427/181 423/182 429/183 -f 426/182 430/183 425/180 424/181 -f 420/184 421/185 417/186 422/187 -f 420/188 419/189 415/190 421/191 -f 422/191 418/190 419/192 420/193 -f 428/194 429/195 425/180 430/183 -f 512/196 507/197 508/198 513/199 -f 430/200 426/201 427/182 428/183 -f 435/191 439/193 440/192 441/190 -f 429/200 423/201 424/182 425/183 -f 421/191 415/190 416/192 417/193 -f 434/191 436/193 437/192 438/190 -f 423/180 427/183 426/194 424/195 -f 447/202 448/203 449/204 450/205 -f 452/206 453/207 454/208 455/209 -f 456/207 457/206 458/209 459/208 -f 458/210 455/211 454/212 459/213 -f 446/203 460/204 465/205 464/202 -f 461/203 463/202 465/214 460/215 -f 444/203 451/204 442/205 443/202 -f 448/203 443/216 442/217 449/204 -f 444/216 447/203 450/204 451/217 -f 450/203 449/202 442/214 451/215 -f 431/218 433/219 482/194 432/220 -f 446/216 445/203 461/204 460/217 -f 466/203 464/216 465/217 463/204 -f 445/202 466/203 463/204 461/205 -f 486/196 487/199 468/198 467/197 -f 495/197 494/221 468/222 473/223 -f 491/224 420/225 488/197 490/226 -f 475/219 476/227 481/228 480/202 -f 477/219 433/229 478/230 479/202 -f 476/219 477/231 479/232 481/202 -f 471/219 475/227 480/228 483/202 -f 472/219 485/202 470/233 482/234 -f 476/235 499/236 497/237 477/223 -f 476/223 475/238 498/239 499/237 -f 471/238 501/239 498/237 475/223 -f 436/188 435/191 441/190 437/189 -f 436/184 434/187 439/186 435/185 -f 462/240 473/241 487/242 486/243 -f 491/225 490/197 462/198 492/244 -f 492/223 462/197 467/245 493/238 -f 468/225 494/197 493/221 467/222 -f 490/246 474/241 473/198 462/197 -f 488/247 489/248 474/199 490/242 -f 495/226 473/224 474/223 496/197 -f 496/221 474/238 489/225 421/197 -f 488/249 420/191 421/188 489/221 -f 494/250 495/222 499/239 498/251 -f 492/239 493/251 501/250 500/222 -f 471/252 484/253 500/225 501/222 -f 496/250 421/222 417/239 497/251 -f 495/254 496/222 497/239 499/255 -f 493/250 494/222 498/239 501/251 -f 491/239 492/256 500/257 502/222 -f 420/239 491/258 502/235 422/222 -f 477/259 497/239 417/237 433/223 -f 472/253 502/223 500/260 484/261 -f 503/223 502/262 472/255 482/237 -f 521/197 509/223 508/222 520/221 -f 517/224 516/226 514/197 436/225 -f 506/240 512/243 513/242 509/241 -f 517/225 518/244 506/198 516/197 -f 518/223 519/238 507/245 506/197 -f 508/225 507/222 519/221 520/197 -f 516/246 506/197 509/198 510/241 -f 514/247 516/242 510/199 515/248 -f 521/226 522/197 510/223 509/224 -f 522/221 435/197 515/225 510/238 -f 514/249 515/221 435/188 436/191 -f 520/250 524/251 525/239 521/222 -f 518/239 526/222 527/250 519/251 -f 522/250 523/251 439/239 435/222 -f 521/254 525/255 523/239 522/222 -f 519/250 527/251 524/239 520/222 -f 517/239 528/222 526/257 518/256 -f 436/239 434/222 528/235 517/258 -f 504/218 505/220 470/194 478/219 -f 470/219 505/218 432/263 482/202 -f 433/219 431/218 504/263 478/202 -f 484/219 511/202 485/264 472/265 -f 471/219 483/202 511/228 484/227 -f 481/235 479/223 523/237 525/236 -f 481/223 525/237 524/239 480/238 -f 483/238 480/223 524/237 527/239 -f 483/252 527/222 526/225 511/253 -f 479/259 478/223 439/237 523/239 -f 485/253 511/261 526/260 528/223 -f 529/223 470/237 485/255 528/262 -f 447/203 444/215 443/214 448/202 - -o capacitors -v -0.812500 0.250000 -0.100428 -v -1.437500 0.600429 0.250000 -v 0.062500 -0.312500 -0.600429 -v -0.087072 0.312500 -0.750000 -v -0.437499 0.312500 -0.600429 -v -0.287929 0.312500 -0.750000 -v 0.062500 0.312500 -0.600429 -v -1.437499 0.312500 -0.600429 -v 0.062502 0.312500 0.399572 -v -0.087069 0.312500 0.250001 -v -0.937500 0.312500 -0.600429 -v -0.437498 0.312500 0.399572 -v -1.437499 0.312500 0.399571 -v -1.087070 -0.312500 0.250000 -v -1.287927 0.312500 0.250000 -v -1.087070 0.312500 0.250001 -v -0.562500 0.125000 0.100429 -v -0.937499 0.312500 0.399572 -v -1.437500 0.250000 0.100429 -v -0.937500 -0.312500 0.399572 -v -0.937500 0.312500 0.600430 -v -0.937500 -0.312500 0.600429 -v -1.437499 0.312500 0.600430 -v -0.087072 -0.312500 -0.750000 -v -0.287928 0.312500 -0.250000 -v -0.287930 -0.312500 -0.750000 -v -0.437500 -0.312500 -0.600428 -v 0.062501 0.312500 0.600430 -v -0.087071 0.312500 -0.250000 -v -0.437498 0.312500 -0.399571 -v 0.062501 0.312500 -0.399571 -v -0.287929 -0.312500 -0.249999 -v -0.087072 -0.312500 -0.249999 -v -0.437499 -0.312500 -0.399571 -v 0.062500 -0.312500 -0.399570 -v -0.812500 0.399570 -0.249999 -v -0.812500 0.600428 -0.250000 -v -1.437500 0.399571 -0.250000 -v -0.812500 0.750000 -0.100429 -v -0.812500 0.750000 0.100430 -v -0.812500 0.250001 0.100430 -v -0.812500 0.600428 0.250001 -v -0.812500 0.399571 0.250001 -v 0.062500 0.274570 -0.249999 -v 0.062500 0.625000 -0.100429 -v -1.287931 -0.312500 -0.750000 -v -1.287930 0.312500 -0.250000 -v -1.087073 -0.312500 -0.750000 -v -1.287930 0.312500 -0.750000 -v -1.087073 0.312500 -0.750000 -v -0.937501 -0.312500 -0.600429 -v -1.437501 -0.312500 -0.600428 -v -1.087073 0.312500 -0.250000 -v -1.437500 0.312500 -0.399572 -v -0.937501 0.312500 -0.399571 -v -1.287930 -0.312500 -0.250000 -v -1.087073 -0.312500 -0.250000 -v -1.437501 -0.312500 -0.399571 -v -0.937501 -0.312500 -0.399571 -v -1.087071 -0.312500 0.750000 -v -1.437499 -0.312500 0.399571 -v -1.287927 -0.312500 0.250000 -v -1.287928 -0.312500 0.750000 -v -1.437500 -0.312500 0.600429 -v -1.087070 0.312500 0.750001 -v -1.287927 0.312500 0.750001 -v -0.087070 -0.312500 0.750001 -v -0.287927 0.312500 0.250000 -v -0.437498 -0.312500 0.399572 -v -0.087070 -0.312500 0.250000 -v 0.062501 -0.312500 0.399572 -v -0.287926 -0.312500 0.250000 -v -0.287927 -0.312500 0.750001 -v 0.062500 -0.312500 0.600429 -v -0.437499 -0.312500 0.600429 -v -0.087070 0.312500 0.750001 -v -0.287927 0.312500 0.750001 -v -0.437499 0.312500 0.600430 -v -0.562500 0.274572 0.250000 -v 0.062500 0.475428 -0.250000 -v -0.562500 0.625000 -0.100429 -v -0.562500 0.274571 -0.250000 -v -0.562500 0.125001 -0.100429 -v -0.562500 0.475428 -0.250000 -v 0.062500 0.125000 -0.100428 -v -0.562500 0.475429 0.250000 -v -0.562500 0.625000 0.100429 -v 0.062500 0.274571 0.250001 -v 0.062500 0.475428 0.250001 -v 0.062500 0.125001 0.100430 -v 0.062500 0.625000 0.100430 -v -1.437500 0.399572 0.250000 -v -1.437500 0.750000 -0.100429 -v -1.437500 0.250001 -0.100429 -v -1.437500 0.600428 -0.250000 -v -1.437500 0.750001 0.100429 -vt 0.906250 0.093750 -vt 0.906250 0.250000 -vt 0.859375 0.250000 -vt 0.859375 0.093750 -vt 0.953125 0.093750 -vt 0.953125 0.250000 -vt 1.000000 0.093750 -vt 1.000000 0.250000 -vt 1.000000 0.046875 -vt 0.957031 0.093750 -vt 0.902344 0.093750 -vt 0.859375 0.046875 -vt 1.000000 0.000000 -vt 0.859375 0.000000 -vt 1.000000 0.296875 -vt 0.859375 0.296875 -vt 0.902344 0.250000 -vt 0.957031 0.250000 -vt 1.000000 0.343750 -vt 0.859375 0.343750 -usemtl railgun -f 563/266 559/267 534/268 556/269 -f 563/266 561/270 554/271 559/267 -f 562/272 558/273 554/271 561/270 -f 530/274 565/275 566/276 568/277 -f 570/278 530/274 568/277 569/279 -f 570/274 569/277 571/276 572/275 -f 534/280 536/281 533/282 535/283 -f 618/272 615/273 608/271 617/270 -f 547/274 545/275 544/276 542/277 -f 550/278 547/274 542/277 552/279 -f 620/266 616/267 615/268 618/269 -f 607/266 604/267 602/268 606/269 -f 556/272 534/273 535/271 555/270 -f 556/274 555/275 553/276 532/277 -f 563/278 556/274 532/277 564/279 -f 555/270 535/271 533/267 553/266 -f 563/274 564/277 562/276 561/275 -f 532/269 553/266 533/267 536/268 -f 559/280 554/283 558/282 560/281 -f 559/284 560/285 536/281 534/280 -f 564/266 560/267 558/268 562/269 -f 532/270 536/271 560/267 564/266 -f 606/272 602/273 596/271 605/270 -f 595/272 592/273 589/271 594/270 -f 588/266 584/267 582/268 586/269 -f 575/270 578/271 579/267 577/266 -f 586/272 582/273 576/271 585/270 -f 587/266 585/270 576/271 583/267 -f 568/269 566/266 624/267 622/268 -f 569/266 625/267 531/268 571/269 -f 568/270 622/271 625/267 569/266 -f 565/270 567/271 624/267 566/266 -f 530/272 623/273 567/271 565/270 -f 571/272 531/273 621/271 572/270 -f 570/266 572/270 621/271 548/267 -f 600/280 598/281 601/282 599/283 -f 570/266 548/267 623/268 530/269 -f 619/266 546/267 612/268 614/269 -f 619/266 617/270 608/271 546/267 -f 614/272 612/273 611/271 573/270 -f 603/284 604/285 598/281 600/280 -f 603/280 596/283 602/282 604/281 -f 573/270 611/271 613/267 609/266 -f 557/274 607/277 606/276 605/275 -f 574/269 609/266 613/267 610/268 -f 557/278 538/274 541/277 607/279 -f 538/274 539/275 597/276 541/277 -f 550/274 552/277 595/276 594/275 -f 574/270 610/271 616/267 620/266 -f 581/274 575/275 577/276 580/277 -f 587/278 581/274 580/277 588/279 -f 541/270 598/271 604/267 607/266 -f 587/274 588/277 586/276 585/275 -f 541/269 597/266 601/267 598/268 -f 539/270 599/271 601/267 597/266 -f 619/274 620/277 618/276 617/275 -f 538/272 600/273 599/271 539/270 -f 619/278 614/274 574/277 620/279 -f 614/274 573/275 609/276 574/277 -f 612/280 610/281 613/282 611/283 -f 557/266 605/270 596/271 603/267 -f 548/280 621/283 531/282 625/281 -f 548/284 625/285 622/281 623/280 -f 557/266 603/267 600/268 538/269 -f 550/266 551/267 549/268 547/269 -f 550/266 594/270 589/271 551/267 -f 623/280 622/281 624/282 567/283 -f 547/272 549/273 543/271 545/270 -f 551/280 589/283 592/282 593/281 -f 551/284 593/285 590/281 549/280 -f 545/270 543/271 591/267 544/266 -f 542/269 544/266 591/267 590/268 -f 552/266 593/267 592/268 595/269 -f 542/270 590/271 593/267 552/266 -f 549/280 590/281 591/282 543/283 -f 580/270 540/271 584/267 588/266 -f 583/280 576/283 582/282 584/281 -f 583/284 584/285 540/281 537/280 -f 580/269 577/266 579/267 540/268 -f 581/272 537/273 578/271 575/270 -f 537/280 540/281 579/282 578/283 -f 546/284 616/285 610/281 612/280 -f 546/280 608/283 615/282 616/281 -f 587/266 583/267 537/268 581/269 - -o wires -v -0.750000 0.875000 -0.625000 -v -1.125000 0.687500 -0.375000 -v -0.750000 0.875000 -0.375000 -v -0.812500 0.750000 -0.625000 -v -0.812500 0.750000 -0.375000 -v -1.125000 0.875000 -0.625000 -v -1.125000 0.875000 -0.375000 -v -1.062500 0.750000 -0.625000 -v -1.062500 0.750000 -0.375000 -v -1.250000 0.750000 -0.625001 -v -0.750000 0.125000 -0.625000 -v -0.625000 0.187500 -0.625000 -v -0.750000 0.687500 -0.375000 -v -0.750000 0.687500 -0.625000 -v -0.625000 0.750000 -0.375000 -v -0.625000 0.750000 -0.625000 -v -1.625000 -0.562500 -0.625001 -v -0.750000 -0.437500 0.375000 -v -1.312500 -0.437500 -0.375000 -v -1.250000 0.187500 -0.375000 -v -1.250000 0.187500 -0.625000 -v -1.312500 -0.437500 -0.625000 -v -1.250000 -0.562500 -0.375000 -v -1.562500 0.437500 -0.281251 -v -1.562500 -0.437500 -0.375000 -v -0.562500 -0.437500 0.625000 -v -1.125000 0.125000 -0.625000 -v -1.125000 0.125000 -0.375000 -v -1.812500 0.437500 -0.281251 -v -1.562500 0.562500 -0.281251 -v -1.125000 0.687500 -0.625001 -v -1.250000 0.750000 -0.375000 -v -1.562500 -0.437500 -0.625000 -v -1.625000 -0.562500 -0.375001 -v -1.812500 0.562500 -0.281251 -v -1.250000 -0.562500 -0.625000 -v -0.562500 -0.437500 0.375000 -v -0.125000 0.312500 -0.375000 -v -0.250000 0.312500 -0.375000 -v -0.250000 0.312500 -0.625000 -v -0.125000 0.375000 -0.593750 -v -0.125000 0.562500 -0.281250 -v 0.187500 0.437500 -0.250000 -v 0.187500 0.437500 -0.500000 -v 0.375000 0.437500 -0.218750 -v 0.375000 0.437500 -0.468750 -v 0.375000 0.312500 -0.437500 -v -0.750000 0.562500 0.125000 -v -0.812500 0.562500 0.125000 -v -0.812500 0.562500 -0.125000 -v -0.875000 0.437500 -0.125000 -v -0.812500 0.437500 0.125000 -v -0.750000 0.562500 -0.125000 -v -0.562500 0.312500 -0.125000 -v -0.562500 0.312500 0.125000 -v -0.500000 0.437500 -0.125000 -v -0.500000 0.437500 0.125000 -v -1.125000 0.687500 0.375000 -v -1.250000 0.750000 0.625000 -v -0.875000 0.437500 0.125000 -v -1.125000 0.125000 0.625000 -v -1.250000 0.187500 0.625000 -v -1.250000 0.187500 0.375000 -v -1.125000 0.687500 0.625000 -v -1.250000 0.750000 0.375000 -v -0.125000 0.312500 0.375000 -v -0.625001 -0.562500 0.625000 -v -0.625000 -0.562500 0.375000 -v -0.312500 -0.437500 0.625000 -v -0.312500 -0.437500 0.375000 -v -0.250000 -0.562500 0.625000 -v -0.625000 -0.375000 0.625000 -v -0.250000 -0.562500 0.375000 -v -0.812500 0.437500 -0.125000 -v -0.125000 0.562500 0.281250 -v -0.562500 0.437500 0.125000 -v -1.125000 0.125000 0.375000 -v 0.187500 0.437500 0.500000 -v 0.250000 0.562500 0.250000 -v 0.250000 0.562500 0.500000 -v -0.562500 0.437500 -0.125000 -v -0.625000 0.312500 0.125000 -v -0.625000 0.750000 0.375000 -v -0.625000 0.750000 0.625000 -v -0.750000 0.687500 0.375000 -v -0.750000 0.687500 0.625000 -v -0.625000 0.187500 0.375000 -v -0.750000 0.125000 0.375000 -v -1.812500 0.312500 -0.437500 -v -1.062500 0.750000 0.625000 -v -1.562500 0.312500 -0.562500 -v -1.062500 -0.312500 0.437500 -v -0.250000 -0.562500 -0.625000 -v -0.625000 -0.375000 -0.375000 -v -0.250000 -0.562500 -0.375000 -v -0.312500 -0.437500 -0.625000 -v -0.312500 -0.437500 -0.375000 -v -0.625000 -0.562500 -0.625000 -v -0.625000 -0.562500 -0.375000 -v -0.562500 -0.437500 -0.625000 -v -0.562500 -0.437500 -0.375000 -v -0.750000 -0.437500 -0.625000 -v -0.250000 0.187500 -0.625000 -v -0.250000 0.187500 -0.375000 -v -0.125000 0.125000 -0.625000 -v -0.125000 0.125000 -0.375000 -v -0.250000 -0.375000 -0.375000 -v -0.250000 -0.375000 -0.625000 -v -0.125000 -0.437500 -0.375000 -v -0.125000 -0.437500 -0.625000 -v -0.625000 0.187500 -0.375000 -v -0.750000 0.125000 -0.375000 -v -0.625000 -0.375000 -0.625000 -v -0.750000 -0.437500 -0.375000 -v 0.250000 0.562500 -0.500000 -v -0.125000 0.375000 -0.343750 -v 0.250000 0.562500 -0.250000 -v -0.125000 0.562500 -0.531250 -v -0.062500 0.437500 -0.531250 -v -0.062500 0.437500 -0.281250 -v -0.250000 0.437500 -0.593750 -v 0.250000 0.312500 -0.437500 -v 0.250000 0.312500 -0.187500 -v 0.375000 0.312500 -0.187500 -v 0.250000 0.375000 -0.218750 -v 0.250000 0.375000 -0.468750 -v -0.125000 0.312500 -0.625000 -v -0.250000 0.437500 -0.343750 -v -1.562500 0.437500 -0.375000 -v -1.812500 0.437500 -0.375001 -v -1.250000 -0.375000 -0.375000 -v -1.250000 -0.375000 -0.625000 -v -1.125000 -0.437500 -0.375000 -v -1.125000 -0.437500 -0.625000 -v -1.562500 0.562500 -0.437501 -v -1.812500 0.562500 -0.437501 -v -1.062500 0.750000 0.375000 -v -1.562500 0.375000 -0.437500 -v -1.812500 0.375000 -0.437501 -v -1.562500 0.437500 -0.562500 -v -1.812500 0.437500 -0.562501 -v -1.625000 -0.375000 -0.375000 -v -1.750000 -0.437500 -0.625000 -v -1.550583 0.187500 -0.471982 -v -1.792065 0.187500 -0.407277 -v -1.582935 0.187500 -0.592723 -v -1.824417 0.187500 -0.528018 -v -1.625000 -0.375000 -0.625000 -v -1.750000 -0.437500 -0.375000 -v -1.780223 -0.312500 -0.395435 -v -1.804127 -0.187500 -0.422997 -v -1.820082 -0.062500 -0.455806 -v -1.827003 0.062500 -0.491627 -v -1.594777 -0.312500 -0.604564 -v -1.570873 -0.187500 -0.577003 -v -1.554917 -0.062500 -0.544194 -v -1.547997 0.062500 -0.508373 -v -1.764503 0.062500 -0.383374 -v -1.731694 -0.062500 -0.367417 -v -1.695874 -0.187500 -0.360497 -v -1.659482 -0.312500 -0.363083 -v -1.610497 0.062500 -0.616627 -v -1.643306 -0.062500 -0.632583 -v -1.679127 -0.187500 -0.639503 -v -1.715518 -0.312500 -0.636917 -v -1.562500 0.312500 -0.437500 -v -1.125001 0.875000 0.625000 -v -1.125000 0.875000 0.375000 -v -1.812500 0.312500 -0.562500 -v -0.812500 0.750000 0.625000 -v -0.250000 0.312500 0.375000 -v -0.250000 0.312500 0.625000 -v -0.812500 0.750000 0.375000 -v 0.187500 0.437500 0.250000 -v -0.750000 0.875000 0.625000 -v 0.375000 0.437500 0.218750 -v 0.375000 0.437500 0.468750 -v 0.375000 0.312500 0.437500 -v -0.625000 0.312500 -0.125000 -v -0.125000 0.375000 0.343750 -v -0.750000 0.875000 0.375000 -v -0.125000 0.562500 0.531250 -v -0.062500 0.437500 0.281250 -v -0.250000 0.437500 0.593750 -v 0.250000 0.312500 0.437500 -v 0.250000 0.312500 0.187500 -v 0.375000 0.312500 0.187500 -v 0.250000 0.375000 0.218750 -v 0.250000 0.375000 0.468750 -v -0.125000 0.312500 0.625000 -v -0.250000 0.437500 0.343750 -v -0.250000 0.187500 0.375000 -v -0.250000 0.187500 0.625000 -v -0.125000 0.125000 0.375000 -v -0.125000 0.125000 0.625000 -v -0.250000 -0.375000 0.625000 -v -0.250000 -0.375000 0.375000 -v -0.125000 -0.437500 0.625000 -v -0.125000 -0.437500 0.375000 -v -0.625000 0.187500 0.625000 -v -0.750000 0.125000 0.625000 -v -0.625000 -0.375000 0.375000 -v -0.750000 -0.437500 0.625000 -v -1.062500 -0.500000 0.437500 -v -0.749995 -0.375000 -0.125000 -v -1.020626 -0.500000 0.281250 -v -0.970964 -0.500000 0.216530 -v -0.906242 -0.500000 0.166868 -v -0.830872 -0.500000 0.135650 -v -0.749991 -0.500000 0.125003 -v -1.062500 0.125000 0.562500 -v -1.062500 -0.375000 0.562500 -v -1.312500 -0.375000 0.562500 -v 0.187500 0.437500 -0.125000 -v 0.187500 0.437500 0.125000 -v 0.125000 0.312500 -0.125000 -v 0.125000 0.312500 0.125000 -v 0.062500 0.437500 -0.125000 -v 0.062500 0.437500 0.125000 -v 0.062500 0.312500 -0.125000 -v 0.062500 0.312500 0.125000 -v 0.187500 -0.312500 -0.125000 -v 0.187500 -0.312500 0.125000 -v 0.312500 -0.375000 0.125000 -v 0.187500 0.250000 0.125000 -v 0.187500 0.250000 -0.125000 -v 0.312500 0.312500 0.125000 -v 0.312500 0.312500 -0.125000 -v -0.749995 -0.500000 -0.125000 -v -0.749995 -0.375000 0.125000 -v 0.187500 -0.500000 -0.125000 -v 0.187501 -0.500000 0.125000 -v 0.125000 -0.375000 -0.125000 -v 0.125000 -0.375000 0.125000 -v 0.312500 -0.375000 -0.125000 -v -1.062500 -0.375000 0.375000 -v -1.312500 -0.375000 0.375000 -v -1.312500 -0.500000 0.437500 -v -1.293328 -0.500000 0.291914 -v -1.051846 -0.500000 0.356619 -v -1.051846 -0.375000 0.356619 -v -1.293328 -0.375000 0.291914 -v -1.237137 -0.500000 0.156247 -v -1.147740 -0.500000 0.039753 -v -1.031247 -0.500000 -0.049642 -v -0.895581 -0.500000 -0.105835 -v -1.020631 -0.375000 0.281247 -v -0.970963 -0.375000 0.216530 -v -0.906246 -0.375000 0.166865 -v -0.830876 -0.375000 0.135647 -v -1.237137 -0.375000 0.156247 -v -1.147740 -0.375000 0.039753 -v -1.031247 -0.375000 -0.049642 -v -0.895581 -0.375000 -0.105835 -v -1.312500 0.187500 0.437500 -v -1.062500 0.187500 0.437500 -v -1.312500 0.125000 0.562500 -v -1.312500 -0.312500 0.437500 -v 3.687499 -0.000000 -0.312500 -v 3.687499 -0.000000 -0.187500 -v 3.687499 -0.500000 0.187501 -v 3.437499 -0.312500 -0.187500 -v 3.437499 -0.500000 0.187501 -v 3.687499 -0.375000 0.125000 -v 3.437499 -0.375000 0.125000 -v 3.687499 -0.500000 -0.187500 -v 3.437499 -0.500000 -0.187500 -v 3.687499 -0.375000 -0.125000 -v 3.437499 -0.375000 -0.125000 -v 3.687499 -0.375000 -0.312499 -v 3.687499 -0.000000 0.187500 -v 3.437499 -0.000000 0.187500 -v 3.687499 -0.000000 0.312500 -v 3.437499 -0.000000 0.312500 -v 3.437499 -0.312500 0.187500 -v 3.687499 -0.312500 0.187500 -v 3.437499 -0.375000 0.312500 -v 3.687499 -0.375000 0.312500 -v 3.437499 -0.000000 -0.187500 -v 3.437499 -0.000000 -0.312500 -v 3.687499 -0.312500 -0.187500 -v 3.437499 -0.375000 -0.312500 -v -0.125000 0.375000 0.593750 -v -0.062500 0.437500 0.531250 -vt 0.796875 0.250000 -vt 0.859375 0.250000 -vt 0.859375 0.187500 -vt 0.796875 0.187500 -vt 0.828125 0.187500 -vt 0.859375 0.171875 -vt 0.859375 0.265625 -vt 0.828125 0.250000 -vt 0.796875 0.171875 -vt 0.796875 0.265625 -vt 0.828125 0.167187 -vt 0.828125 0.145313 -vt 0.859375 0.140625 -vt 0.796875 0.140625 -vt 0.796875 0.167187 -vt 0.859375 0.167187 -vt 0.859375 0.145313 -vt 0.796875 0.145313 -vt 0.796875 0.159375 -vt 0.859375 0.159375 -vt 0.859375 0.137500 -vt 0.796875 0.137500 -vt 0.796875 0.000000 -vt 0.859375 0.000000 -vt 0.796875 0.164062 -vt 0.796875 0.132812 -vt 0.859375 0.132812 -vt 0.859375 0.164062 -vt 0.828125 0.137500 -vt 0.828125 0.159375 -vt 0.859375 0.156250 -vt 0.796875 0.156250 -vt 0.859375 0.289062 -vt 0.859375 0.257812 -vt 0.796875 0.257812 -vt 0.796875 0.289062 -vt 0.796875 0.292188 -vt 0.859375 0.292188 -vt 0.859375 0.270312 -vt 0.796875 0.270312 -vt 0.828125 0.284375 -vt 0.828125 0.262500 -vt 0.828125 0.000000 -vt 0.828125 0.140625 -vt 0.796875 0.429688 -vt 0.859375 0.429688 -vt 0.828125 0.171875 -vt 0.828125 0.195312 -vt 0.796875 0.195312 -vt 0.859375 0.195312 -vt 0.859375 0.148438 -vt 0.796875 0.148438 -vt 0.828125 0.156250 -vt 0.796875 0.015625 -vt 0.828125 0.015625 -vt 0.828125 0.289062 -vt 0.828125 0.429688 -vt 0.796875 0.218750 -vt 0.796875 0.203125 -vt 0.859375 0.203125 -vt 0.859375 0.218750 -vt 0.859375 0.015625 -vt 0.859375 0.320312 -vt 0.796875 0.320312 -vt 0.828125 0.310937 -vt 0.796875 0.310937 -vt 0.859375 0.310937 -vt 0.796875 0.234375 -vt 0.859375 0.234375 -vt 0.828125 0.218750 -vt 0.828125 0.203125 -vt 0.828125 0.398438 -vt 0.859375 0.445312 -vt 0.859375 0.414062 -vt 0.796875 0.398438 -vt 0.859375 0.398437 -vt 0.796875 0.445312 -vt 0.796875 0.414062 -vt 0.828125 0.398437 -vt 0.828125 0.304688 -vt 0.828125 0.335938 -vt 0.859375 0.351562 -vt 0.828125 0.367188 -vt 0.859375 0.382812 -vt 0.859375 0.304688 -vt 0.796875 0.304688 -vt 0.859375 0.335937 -vt 0.796875 0.335938 -vt 0.859375 0.367187 -vt 0.796875 0.367188 -vt 0.796875 0.351562 -vt 0.796875 0.382813 -vt 0.828125 0.335937 -vt 0.828125 0.367187 -vt 0.796875 0.093750 -vt 0.796875 0.125000 -vt 0.859375 0.125000 -vt 0.859375 0.093750 -vt 0.828125 0.109375 -vt 0.828125 0.125000 -vt 0.859375 0.109375 -vt 0.796875 0.109375 -vt 0.859375 0.476562 -vt 0.796875 0.476562 -vt 0.859375 0.460938 -vt 0.796875 0.460938 -vt 0.828125 0.460938 -vt 0.796875 0.035156 -vt 0.829092 0.035156 -vt 0.829092 0.015625 -vt 0.828125 0.031250 -vt 0.796875 0.031250 -vt 0.859375 0.031250 -vt 0.859375 0.035156 -vt 0.796875 0.046875 -vt 0.859375 0.046875 -vt 0.828125 0.046875 -vt 0.796875 0.078125 -vt 0.828125 0.093750 -vt 0.828125 0.078125 -vt 0.796875 0.062500 -vt 0.828125 0.062500 -vt 0.859375 0.062500 -vt 0.796875 0.074219 -vt 0.796875 0.042969 -vt 0.859375 0.085938 -vt 0.796875 0.105469 -vt 0.859375 0.070312 -vt 0.859375 0.160156 -vt 0.859375 0.144531 -vt 0.796875 0.144531 -vt 0.796875 0.160156 -vt 0.828125 0.160156 -vt 0.828125 0.144531 -vt 0.796875 0.199219 -vt 0.796875 0.179688 -vt 0.828125 0.265625 -vt 0.828125 0.245313 -vt 0.828125 0.223438 -vt 0.796875 0.245313 -vt 0.859375 0.245313 -vt 0.859375 0.223438 -vt 0.796875 0.223438 -vt 0.828125 0.199219 -vt 0.796875 0.085937 -vt 0.796875 0.070312 -vt 0.859375 0.074219 -vt 0.859375 0.105469 -vt 0.859375 0.042969 -vt 0.828125 0.042969 -vt 0.828125 0.074219 -vt 0.828125 0.105469 -vt 0.828125 0.296875 -vt 0.828125 0.281250 -vt 0.796875 0.296875 -vt 0.796875 0.312500 -vt 0.859375 0.312500 -vt 0.859375 0.296875 -vt 0.796875 0.281250 -vt 0.859375 0.281250 -vt 0.828125 0.375000 -vt 0.859375 0.390625 -vt 0.859375 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.390625 -vt 0.859375 0.261719 -vt 0.796875 0.261719 -usemtl railgun -f 634/286 633/287 629/288 630/289 -f 630/290 628/291 632/292 634/293 -f 632/292 628/291 626/294 631/295 -f 629/290 633/293 631/295 626/294 -f 630/296 638/297 640/298 628/291 -f 626/294 641/299 639/297 629/296 -f 628/294 640/299 641/298 626/291 -f 630/300 629/301 639/302 638/303 -f 754/304 755/305 764/306 763/307 -f 756/299 645/308 646/309 757/298 -f 647/290 661/294 642/295 658/293 -f 760/310 765/311 766/312 761/313 -f 761/310 766/311 764/314 755/315 -f 754/315 763/314 765/312 760/313 -f 659/292 642/295 661/294 648/291 -f 644/300 756/303 757/302 647/301 -f 750/299 751/298 747/316 748/317 -f 657/318 632/319 631/320 635/321 -f 627/322 656/323 633/324 634/325 -f 657/318 627/326 634/327 632/319 -f 656/326 635/321 631/320 633/327 -f 641/299 637/308 636/328 639/329 -f 648/294 661/291 759/298 758/299 -f 627/321 653/330 652/331 656/318 -f 755/332 654/333 660/334 761/317 -f 655/335 760/316 761/317 660/334 -f 661/294 647/296 757/297 759/299 -f 644/296 648/291 758/298 756/297 -f 644/290 650/293 659/292 648/291 -f 754/332 760/316 655/335 649/333 -f 650/286 644/289 647/288 658/287 -f 649/294 654/291 755/336 754/337 -f 670/299 749/294 672/291 671/298 -f 671/299 672/294 747/338 751/329 -f 838/299 882/339 880/340 883/329 -f 863/294 838/299 883/297 862/296 -f 689/341 684/318 687/331 686/342 -f 684/318 792/319 793/320 690/321 -f 861/296 717/297 837/298 829/291 -f 799/296 704/291 801/298 813/297 -f 700/292 807/295 705/294 704/291 -f 799/290 808/293 700/292 704/291 -f 694/296 696/291 823/298 821/297 -f 823/299 824/298 819/309 820/308 -f 821/329 823/298 820/309 818/328 -f 813/329 801/298 812/291 811/338 -f 695/290 698/294 693/295 662/293 -f 692/292 693/295 698/294 696/291 -f 694/290 651/293 692/292 696/291 -f 651/286 694/289 695/288 662/287 -f 701/343 682/344 681/345 706/346 -f 799/294 813/299 814/298 703/291 -f 690/321 683/341 702/342 688/330 -f 684/318 690/321 688/330 687/331 -f 689/322 683/323 762/324 715/325 -f 684/318 689/326 715/327 792/319 -f 683/326 690/321 793/320 762/327 -f 689/321 686/330 702/331 683/318 -f 717/299 883/298 880/347 881/339 -f 708/299 712/308 713/328 710/329 -f 816/318 796/348 797/349 809/321 -f 703/290 705/294 807/295 909/293 -f 802/299 814/329 810/338 803/294 -f 801/299 802/298 803/291 812/294 -f 813/299 811/317 810/316 814/298 -f 861/300 862/301 883/302 717/303 -f 717/329 881/340 836/347 837/298 -f 726/286 722/289 721/288 725/287 -f 722/290 726/293 724/292 720/291 -f 724/292 723/295 718/294 720/291 -f 721/290 718/294 723/295 725/293 -f 732/329 734/298 731/309 729/328 -f 734/299 735/298 730/309 731/308 -f 722/296 720/291 734/298 732/297 -f 718/294 721/296 733/297 735/299 -f 720/294 718/291 735/298 734/299 -f 722/300 732/303 733/302 721/301 -f 739/318 727/321 723/320 724/319 -f 719/322 726/325 725/324 738/323 -f 739/318 724/319 726/327 719/326 -f 738/326 725/327 723/320 727/321 -f 732/299 729/308 728/309 733/298 -f 735/299 733/329 728/328 730/308 -f 719/341 736/342 737/331 739/318 -f 638/329 737/328 736/309 640/298 -f 640/299 736/308 637/309 641/298 -f 638/299 639/298 636/309 737/308 -f 719/321 738/318 637/331 736/330 -f 739/318 737/331 636/330 727/321 -f 727/321 636/330 637/342 738/341 -f 746/321 666/341 752/350 665/349 -f 753/318 746/321 665/349 664/348 -f 741/321 663/351 752/352 666/318 -f 741/341 753/318 664/348 663/350 -f 666/326 746/321 743/320 744/327 -f 753/318 741/326 745/327 667/319 -f 741/322 666/323 744/324 745/325 -f 753/318 667/319 743/320 746/321 -f 668/300 669/301 751/302 750/303 -f 742/294 670/299 671/298 740/291 -f 740/294 671/299 751/297 669/296 -f 668/296 750/297 670/298 742/291 -f 750/329 748/338 749/291 670/298 -f 669/290 744/293 743/295 740/294 -f 667/292 742/291 740/294 743/295 -f 668/290 742/291 667/292 745/293 -f 745/286 744/287 669/288 668/289 -f 759/299 757/329 646/328 652/308 -f 707/353 804/354 679/346 680/343 -f 804/353 706/355 681/356 679/343 -f 701/355 707/354 680/346 682/356 -f 627/341 657/318 645/331 653/342 -f 657/318 635/321 646/330 645/331 -f 635/321 656/341 652/342 646/330 -f 758/299 759/298 652/309 653/308 -f 756/329 758/298 653/309 645/328 -f 795/300 798/301 710/302 711/303 -f 800/294 709/299 708/298 806/291 -f 806/294 708/299 710/297 798/296 -f 795/296 711/297 709/298 800/291 -f 783/357 770/342 772/358 778/359 -f 783/360 782/361 769/331 770/330 -f 778/359 772/358 771/362 787/363 -f 787/363 771/362 769/342 782/364 -f 767/341 786/365 775/348 774/318 -f 786/365 785/366 776/367 775/348 -f 785/366 784/368 777/369 776/367 -f 784/368 783/357 778/359 777/369 -f 767/321 773/318 779/370 786/371 -f 786/371 779/370 780/372 785/373 -f 785/373 780/372 781/374 784/375 -f 784/375 781/374 782/361 783/360 -f 774/318 775/348 790/349 768/321 -f 775/348 776/367 789/376 790/349 -f 776/367 777/369 788/377 789/376 -f 777/369 778/359 787/363 788/377 -f 768/321 790/349 779/365 773/341 -f 790/349 789/376 780/378 779/365 -f 789/376 788/377 781/379 780/378 -f 788/377 787/363 782/364 781/379 -f 798/290 762/293 793/295 806/294 -f 792/292 800/291 806/294 793/295 -f 795/290 800/291 792/292 715/293 -f 715/286 762/287 798/288 795/289 -f 705/294 703/296 814/297 802/299 -f 704/294 705/291 802/298 801/299 -f 816/318 809/321 807/320 700/319 -f 816/318 700/319 808/327 805/326 -f 805/341 691/350 796/348 816/318 -f 773/326 658/327 642/320 768/321 -f 774/318 659/319 650/327 767/326 -f 767/322 650/325 658/324 773/323 -f 774/318 768/321 642/320 659/319 -f 765/380 716/381 794/382 766/383 -f 763/384 791/385 716/382 765/383 -f 763/381 764/382 714/386 791/387 -f 766/380 794/381 714/385 764/384 -f 771/362 772/358 794/388 716/389 -f 770/330 769/331 791/390 714/391 -f 769/342 771/362 716/389 791/392 -f 772/358 770/342 714/392 794/388 -f 698/294 695/296 822/297 824/299 -f 696/294 698/291 824/298 823/299 -f 694/300 821/303 822/302 695/301 -f 828/318 643/321 693/320 692/319 -f 697/322 651/325 662/324 827/323 -f 828/318 692/319 651/327 697/326 -f 827/326 662/327 693/320 643/321 -f 821/299 818/308 817/309 822/298 -f 824/299 822/329 817/328 819/308 -f 697/341 825/342 826/331 828/318 -f 711/329 826/328 825/309 709/298 -f 709/299 825/308 712/309 708/298 -f 711/299 710/298 713/309 826/308 -f 697/321 827/318 712/331 825/330 -f 828/318 826/331 713/330 643/321 -f 643/321 713/330 712/342 827/341 -f 855/339 875/393 834/394 835/395 -f 830/396 858/293 856/295 854/397 -f 857/292 835/398 854/397 856/295 -f 855/396 835/398 857/292 859/293 -f 859/286 858/287 830/398 855/397 -f 834/399 871/400 854/339 835/347 -f 875/393 855/339 830/347 879/401 -f 830/347 854/340 871/402 879/401 -f 873/387 872/381 831/385 832/384 -f 874/403 873/380 832/404 833/405 -f 875/400 874/406 833/407 834/402 -f 833/408 870/409 871/410 834/401 -f 832/411 869/412 870/409 833/413 -f 831/382 868/299 869/387 832/386 -f 865/414 864/294 868/299 831/415 -f 872/416 866/417 865/418 831/419 -f 837/299 836/339 882/347 838/298 -f 829/288 863/420 864/294 865/291 -f 866/294 861/421 829/290 865/332 -f 829/294 837/299 838/298 863/291 -f 846/295 845/292 841/287 842/286 -f 842/293 840/354 844/292 846/422 -f 844/292 840/354 839/353 843/295 -f 841/293 845/422 843/295 839/353 -f 850/356 848/407 849/398 852/345 -f 842/423 850/424 852/346 840/287 -f 839/286 853/343 851/424 841/423 -f 840/286 852/343 853/346 839/287 -f 842/425 841/426 851/427 850/428 -f 850/344 851/345 847/408 848/406 -f 867/291 864/332 863/429 862/288 -f 876/298 868/329 864/332 867/291 -f 861/421 866/294 867/291 862/288 -f 866/417 872/416 876/298 867/291 -f 872/381 873/387 877/386 876/298 -f 873/430 874/431 878/432 877/433 -f 874/406 875/400 879/434 878/432 -f 879/434 871/435 870/436 878/432 -f 878/432 870/436 869/437 877/433 -f 877/386 869/384 868/329 876/298 -f 675/438 678/439 699/440 676/441 -f 685/442 677/443 673/439 674/438 -f 674/440 673/444 678/445 675/443 -f 685/442 676/441 699/440 677/443 -f 706/355 804/353 699/440 678/439 -f 677/443 699/440 804/353 707/354 -f 701/355 673/439 677/443 707/354 -f 673/444 701/343 706/346 678/445 -f 852/344 849/397 860/398 853/345 -f 853/344 860/397 847/407 851/356 -f 849/318 857/319 856/320 860/321 -f 848/322 847/323 858/324 859/325 -f 849/318 848/326 859/327 857/319 -f 847/326 860/321 856/320 858/327 -f 894/286 890/289 889/288 893/287 -f 890/290 894/293 892/292 888/291 -f 892/292 891/295 886/294 888/291 -f 889/290 886/294 891/295 893/293 -f 900/329 902/298 899/401 897/407 -f 902/299 903/298 898/401 899/400 -f 890/296 888/291 902/298 900/297 -f 886/294 889/296 901/297 903/299 -f 888/294 886/291 903/298 902/299 -f 890/300 900/303 901/302 889/301 -f 907/318 895/321 891/320 892/319 -f 887/322 894/325 893/324 906/323 -f 907/318 892/319 894/327 887/326 -f 906/326 893/327 891/320 895/321 -f 900/299 897/406 896/408 901/298 -f 903/299 901/329 896/407 898/400 -f 887/341 904/446 905/447 907/318 -f 887/321 906/318 885/448 904/449 -f 907/318 905/447 884/450 895/321 -f 895/321 884/450 885/446 906/341 -f 809/321 797/349 815/350 908/341 -f 805/318 908/321 815/441 691/442 -f 808/287 799/288 703/289 909/286 -f 908/326 909/327 807/320 809/321 -f 805/318 808/451 909/452 908/321 - -o upgrade_scope -v 0.249999 1.312499 -0.187500 -v 0.249999 1.312499 0.187500 -v -0.625001 0.937499 -0.187500 -v 0.249999 0.937499 -0.187500 -v -1.437500 0.937500 -0.125000 -v -1.437500 0.937500 0.125000 -v -1.437500 0.750000 0.125000 -v -1.437500 0.750000 -0.125000 -v -1.562500 0.937500 0.125000 -v -1.562500 0.750000 0.125000 -v -1.562500 0.937500 -0.125000 -v -1.562500 0.750000 -0.125000 -v -0.312501 0.937500 -0.125000 -v -0.312501 0.937500 0.125000 -v -0.312501 0.562500 0.125000 -v -0.312501 0.562500 -0.125000 -v -0.437501 0.937500 0.125000 -v -0.437501 0.562500 0.125000 -v -0.437501 0.937500 -0.125000 -v -0.437501 0.562500 -0.125000 -v -1.375000 1.343749 -0.218749 -v -1.375000 0.906249 -0.218749 -v -1.437500 0.906249 -0.218749 -v -1.437500 0.906249 0.218750 -v -1.437500 1.343749 -0.218749 -v -1.375000 1.343749 0.218751 -v -1.375000 0.906250 0.218751 -v -1.437500 1.343749 0.218750 -v -0.718751 1.281249 -0.375000 -v -0.718751 1.281249 -0.250000 -v -0.718751 0.968749 -0.250000 -v -0.718751 0.968749 -0.375000 -v -1.031250 1.281249 -0.250000 -v -1.031250 1.281249 -0.375000 -v -1.031250 0.968749 -0.375000 -v -1.031250 0.968749 -0.250000 -v -0.625001 1.374999 -0.250000 -v -0.625001 1.374999 0.250000 -v -0.625001 0.875000 0.250000 -v -0.625001 0.875000 -0.250000 -v -1.125000 1.374999 0.250000 -v -1.125000 0.875000 0.250000 -v -1.125000 1.374999 -0.250000 -v -1.125000 0.875000 -0.250000 -v -0.718751 1.499999 -0.156250 -v -0.718751 1.499999 0.156250 -v -0.718751 1.374999 0.156250 -v -0.718751 1.374999 -0.156250 -v -1.031250 1.499999 0.156250 -v -1.031250 1.374999 0.156250 -v -1.031250 1.499999 -0.156250 -v -1.031250 1.374999 -0.156250 -v -1.875000 1.312499 0.187500 -v -1.875000 0.937500 0.187500 -v -1.687500 1.312499 -0.187500 -v -1.875000 1.312499 -0.187500 -v -1.875000 0.937499 -0.187500 -v 0.249999 1.249999 -0.125000 -v 0.249999 1.249999 0.125000 -v 0.249999 1.000000 0.125000 -v 0.249999 0.999999 -0.125000 -v -1.875000 1.249999 0.124999 -v -1.875000 1.000000 0.124999 -v -1.875000 1.249999 -0.125000 -v -1.875000 0.999999 -0.125000 -v -0.312501 0.562500 -0.000000 -v -0.312501 0.937500 -0.000000 -v -0.437501 0.562500 -0.000000 -v -0.437501 0.937500 -0.000000 -v -1.250000 0.937499 0.187501 -v -1.500000 1.312499 -0.187500 -v -1.562500 1.343749 0.218750 -v -1.500000 0.937499 0.187500 -v -1.500000 0.906250 0.218751 -v -1.500000 1.343749 0.218751 -v -1.500000 0.937499 -0.187500 -v -1.250000 1.312499 0.187501 -v -1.562500 1.343749 -0.218749 -v -1.500000 1.312499 0.187501 -v -1.562500 0.906249 0.218750 -v -1.562500 0.906249 -0.218749 -v -1.500000 0.906249 -0.218749 -v -1.250000 0.937498 -0.187500 -v -1.500000 1.343749 -0.218749 -v -1.250000 1.312499 -0.187500 -v -1.125000 1.312499 0.187501 -v -1.437500 1.312499 -0.187500 -v -1.125000 0.937499 0.187501 -v -1.437500 0.937499 -0.187500 -v -1.125000 0.937498 -0.187500 -v -1.437500 1.312499 0.187501 -v -1.437500 0.937499 0.187500 -v -1.125000 1.312499 -0.187500 -v -1.312500 0.906249 0.218750 -v -1.312500 0.906249 -0.218749 -v -1.250000 0.906249 -0.218749 -v -1.250000 1.343749 -0.218749 -v -1.312500 1.312499 -0.187500 -v -1.375000 1.312499 -0.187500 -v -1.312500 0.937498 -0.187500 -v -1.375000 0.937498 -0.187500 -v -1.312500 1.312499 0.187501 -v -1.375000 1.312499 0.187501 -v -1.375000 0.937499 0.187500 -v -1.312500 0.937499 0.187501 -v -1.312500 1.343749 -0.218749 -v -1.250000 1.343749 0.218751 -v -1.250000 0.906250 0.218751 -v -1.312500 1.343749 0.218750 -v -1.687500 0.937499 0.187500 -v -1.687500 1.312500 0.187500 -v -1.687500 0.937499 -0.187500 -v -1.562500 1.312500 0.187500 -v -1.562500 0.937499 0.187500 -v -1.562500 0.937499 -0.187500 -v -1.562500 1.312500 -0.187501 -v -0.625001 0.937499 0.187500 -v -0.625001 1.312500 0.187500 -v -0.500001 0.937499 0.187500 -v -0.500001 1.312500 0.187500 -v -0.437501 1.343749 -0.218749 -v -0.437501 0.906249 -0.218749 -v -0.437501 0.937499 0.187500 -v -0.312501 0.937499 0.187500 -v -0.437501 1.312500 0.187500 -v -0.312501 1.312500 0.187500 -v 0.249999 0.937499 0.187500 -v 0.249999 1.312499 -0.187500 -v 0.124999 0.937499 0.187500 -v 0.124999 1.312499 0.187500 -v -0.500001 0.906249 -0.218749 -v -0.500001 0.906249 0.218750 -v 0.062499 0.937499 0.187500 -v -0.062501 0.937499 0.187500 -v 0.062499 1.312499 0.187500 -v -0.062501 1.312499 0.187500 -v -0.500001 1.343749 -0.218749 -v -0.437501 1.343749 0.218751 -v -0.437501 0.906250 0.218751 -v -0.500001 1.343749 0.218750 -v -0.250001 1.343749 -0.218749 -v -0.250001 0.906249 -0.218749 -v -0.312501 0.906249 -0.218749 -v -0.312501 0.906249 0.218750 -v -0.312501 1.343749 -0.218749 -v -0.250001 1.343749 0.218751 -v -0.250001 0.906250 0.218751 -v -0.312501 1.343749 0.218750 -v -0.062501 1.343749 -0.218749 -v -0.062501 0.906249 -0.218749 -v -0.125001 0.906249 -0.218749 -v -0.125001 0.906249 0.218750 -v -0.125001 1.343749 -0.218749 -v -0.062501 1.343749 0.218751 -v -0.062501 0.906250 0.218751 -v -0.125001 1.343749 0.218750 -v -0.250001 0.937499 0.187501 -v -0.250001 1.312500 0.187501 -v -0.125001 1.312500 0.187501 -v -0.125001 0.937499 0.187501 -v 0.124999 1.343749 -0.218749 -v 0.124999 0.906249 -0.218749 -v 0.062499 0.906249 -0.218749 -v 0.062499 0.906249 0.218750 -v 0.062499 1.343749 -0.218749 -v 0.124999 1.343749 0.218751 -v 0.124999 0.906250 0.218751 -v 0.062499 1.343749 0.218750 -v -0.625001 1.312500 -0.187500 -v -0.500001 0.937499 -0.187500 -v -0.500001 1.312500 -0.187500 -v -0.437501 0.937499 -0.187500 -v -0.312501 0.937499 -0.187500 -v -0.437501 1.312500 -0.187500 -v -0.312501 1.312500 -0.187500 -v 0.249999 0.937499 -0.187500 -v 0.124999 0.937499 -0.187500 -v 0.124999 1.312499 -0.187500 -v 0.062499 0.937499 -0.187500 -v -0.062501 0.937499 -0.187500 -v 0.062499 1.312499 -0.187500 -v -0.062501 1.312499 -0.187500 -v -0.250001 0.937499 -0.187499 -v -0.250001 1.312500 -0.187499 -v -0.125001 1.312500 -0.187499 -v -0.125001 0.937499 -0.187499 -v -0.625001 0.937500 0.187499 -v 0.249999 0.937499 0.187500 -v -0.625001 1.312500 0.187499 -v -0.625001 1.312500 -0.187501 -v -0.500001 1.312500 0.187499 -v -0.500001 1.312500 -0.187501 -v -0.437501 1.312500 0.187499 -v -0.312501 1.312500 0.187499 -v -0.437501 1.312500 -0.187501 -v -0.312501 1.312500 -0.187501 -v 0.249999 1.312499 0.187500 -v 0.124999 1.312499 0.187500 -v 0.124999 1.312499 -0.187500 -v 0.062499 1.312499 0.187500 -v -0.062501 1.312499 0.187500 -v 0.062499 1.312499 -0.187500 -v -0.062501 1.312499 -0.187500 -v -0.250001 1.312500 0.187500 -v -0.250001 1.312500 -0.187501 -v -0.125001 1.312500 -0.187501 -v -0.125001 1.312500 0.187499 -v -0.625001 0.937500 -0.187501 -v -0.500001 0.937500 0.187499 -v -0.500001 0.937500 -0.187501 -v -0.437501 0.937500 0.187499 -v -0.312501 0.937500 0.187499 -v -0.437501 0.937500 -0.187501 -v -0.312501 0.937500 -0.187501 -v 0.124999 0.937499 0.187500 -v 0.124999 0.937499 -0.187500 -v 0.062499 0.937499 0.187500 -v -0.062501 0.937499 0.187500 -v 0.062499 0.937499 -0.187500 -v -0.062501 0.937499 -0.187500 -v -0.250001 0.937500 0.187499 -v -0.250001 0.937500 -0.187501 -v -0.125001 0.937500 -0.187501 -v -0.125001 0.937500 0.187499 -vt 0.359375 0.015625 -vt 0.359375 0.109375 -vt 0.343750 0.093750 -vt 0.343750 0.031250 -vt 0.421875 0.046875 -vt 0.421875 0.000000 -vt 0.359375 0.000000 -vt 0.359375 0.046875 -vt 0.437500 0.046875 -vt 0.406250 0.046875 -vt 0.406250 0.000000 -vt 0.437500 0.000000 -vt 0.390625 0.046875 -vt 0.390625 0.000000 -vt 0.343750 0.109375 -vt 0.375000 0.109375 -vt 0.375000 0.015625 -vt 0.343750 0.015625 -vt 0.437500 0.109375 -vt 0.437500 0.125000 -vt 0.546875 0.125000 -vt 0.546875 0.109375 -vt 0.453125 0.000000 -vt 0.453125 0.109375 -vt 0.546875 0.000000 -vt 0.546875 0.015625 -vt 0.437500 0.015625 -vt 0.562500 0.000000 -vt 0.562500 0.109375 -vt 0.359375 0.031250 -vt 0.437500 0.031250 -vt 0.562500 0.125000 -vt 0.531250 0.015625 -vt 0.468750 0.015625 -vt 0.562500 0.187500 -vt 0.500000 0.187500 -vt 0.500000 0.125000 -vt 0.312500 0.015625 -vt 0.281250 0.015625 -vt 0.281250 0.109375 -vt 0.312500 0.109375 -vt 0.453125 0.031250 -vt 0.453125 0.093750 -vt 0.359375 0.093750 -vt 0.421875 0.093750 -vt 0.296875 0.015625 -vt 0.296875 0.109375 -vt 0.250000 0.015625 -vt 0.250000 0.109375 -vt 0.562500 0.015625 -vt 0.546875 0.093750 -vt 0.546875 0.031250 -vt 0.453125 0.125000 -vt 0.468750 0.109375 -vt 0.531250 0.109375 -usemtl railgun -f 962/453 965/454 973/455 971/456 -f 914/457 915/458 916/459 917/460 -f 915/461 918/462 919/463 916/464 -f 918/458 920/459 921/460 919/457 -f 920/465 914/460 917/459 921/466 -f 976/467 923/468 924/469 975/470 -f 923/468 926/467 927/470 924/469 -f 978/467 928/468 929/469 977/470 -f 928/468 922/467 925/470 929/469 -f 937/471 935/472 930/473 934/474 -f 933/475 936/464 935/471 937/476 -f 933/464 932/477 931/478 936/479 -f 937/477 934/464 932/471 933/474 -f 932/480 934/481 930/474 931/477 -f 930/464 935/477 936/474 931/471 -f 938/482 939/459 940/464 941/483 -f 942/459 943/482 944/483 945/464 -f 943/471 938/454 941/482 944/483 -f 941/482 940/459 945/464 944/483 -f 943/482 942/459 939/464 938/483 -f 946/464 947/480 948/484 949/472 -f 947/480 950/464 951/472 948/484 -f 950/480 952/464 953/472 951/484 -f 952/480 946/464 949/472 953/484 -f 949/464 948/480 951/484 953/472 -f 952/472 950/464 947/480 946/484 -f 954/483 955/482 956/459 957/464 -f 955/483 958/482 959/459 956/464 -f 958/483 960/482 961/459 959/464 -f 960/483 954/482 957/459 961/464 -f 960/454 958/482 955/483 954/471 -f 910/475 911/477 968/485 967/486 -f 967/487 968/488 969/489 970/484 -f 971/487 973/488 974/489 972/484 -f 1088/490 1089/491 1091/492 1090/493 -f 963/456 962/483 971/457 972/460 -f 913/471 910/479 967/494 970/495 -f 1081/490 1083/493 1084/492 1082/491 -f 966/467 963/470 972/482 974/496 -f 965/471 966/467 974/496 973/497 -f 922/468 976/467 975/470 925/469 -f 926/468 978/467 977/470 927/469 -f 993/464 984/477 983/474 991/471 -f 1019/470 1021/467 1024/493 1023/490 -f 1019/470 1023/490 1022/493 1020/467 -f 990/480 987/481 993/474 991/477 -f 981/477 987/464 990/471 989/474 -f 989/464 990/477 991/478 983/479 -f 989/475 983/464 984/471 981/476 -f 981/471 984/472 993/473 987/474 -f 1006/464 1016/477 1017/474 1005/471 -f 1004/480 1015/481 1006/474 1005/477 -f 988/490 1000/498 996/499 980/493 -f 979/491 997/500 995/501 986/492 -f 985/490 980/493 996/499 998/498 -f 979/491 992/492 999/501 997/500 -f 982/490 985/493 998/499 1001/498 -f 992/491 994/492 1002/501 999/500 -f 982/490 1001/498 1000/499 988/493 -f 986/491 995/500 1002/501 994/492 -f 1018/477 1015/464 1004/471 1003/474 -f 1003/464 1004/477 1005/478 1017/479 -f 1003/475 1017/464 1016/471 1018/476 -f 1018/471 1016/472 1006/473 1015/474 -f 1012/498 1011/491 1007/492 1008/499 -f 1010/498 1008/499 1007/492 1009/491 -f 1013/498 1010/499 1009/492 1014/491 -f 1013/498 1014/491 1011/492 1012/499 -f 966/459 965/464 964/461 1021/460 -f 963/459 966/464 1021/461 1019/460 -f 962/464 963/459 1019/460 1020/461 -f 965/464 962/459 1020/460 964/461 -f 1021/470 964/467 1025/493 1024/490 -f 1020/470 1022/490 1025/493 964/467 -f 1026/470 1028/490 1029/493 1027/467 -f 1040/480 1046/481 1030/474 1031/477 -f 1032/490 1033/491 1035/492 1034/493 -f 912/470 1078/467 1080/493 1079/490 -f 1030/464 1047/477 1048/474 1031/471 -f 1042/490 1044/493 1045/492 1043/491 -f 1049/477 1046/464 1040/471 1041/474 -f 1041/464 1040/477 1031/478 1048/479 -f 1041/475 1048/464 1047/471 1049/476 -f 1049/471 1047/472 1030/473 1046/474 -f 1052/480 1054/481 1050/474 1051/477 -f 1050/464 1055/477 1056/474 1051/471 -f 1057/477 1054/464 1052/471 1053/474 -f 1053/464 1052/477 1051/478 1056/479 -f 1053/475 1056/464 1055/471 1057/476 -f 1057/471 1055/472 1050/473 1054/474 -f 1060/480 1062/481 1058/474 1059/477 -f 1058/464 1063/477 1064/474 1059/471 -f 1065/477 1062/464 1060/471 1061/474 -f 1061/464 1060/477 1059/478 1064/479 -f 1061/475 1064/464 1063/471 1065/476 -f 1065/471 1063/472 1058/473 1062/474 -f 1066/491 1069/500 1068/501 1067/492 -f 1072/480 1074/481 1070/474 1071/477 -f 1070/464 1075/477 1076/474 1071/471 -f 1077/477 1074/464 1072/471 1073/474 -f 1073/464 1072/477 1071/478 1076/479 -f 1073/475 1076/464 1075/471 1077/476 -f 1077/471 1075/472 1070/473 1074/474 -f 911/502 1036/481 969/503 968/504 -f 1036/473 913/505 970/506 969/507 -f 1036/470 911/467 1039/493 1038/490 -f 1092/491 1093/492 1094/501 1095/500 -f 1126/490 1127/491 1129/492 1128/493 -f 913/470 1086/490 1087/493 910/467 -f 1120/490 1122/493 1123/492 1121/491 -f 1098/470 1100/490 1101/493 1099/467 -f 1102/490 1103/491 1105/492 1104/493 -f 1096/470 1117/467 1119/493 1118/490 -f 1109/490 1111/493 1112/492 1110/491 -f 1113/491 1116/500 1115/501 1114/492 -f 1106/470 1037/467 1108/493 1107/490 -f 1130/491 1131/492 1132/501 1133/500 -f 1097/470 1124/490 1125/493 1085/467 - -o sled -v 0.312500 0.000000 0.187500 -v 0.312500 0.000000 -0.187500 -v 0.312500 0.250000 0.187500 -v 0.562500 0.250000 -0.187500 -v 0.312500 0.250000 -0.187500 -v 0.562500 0.250000 -0.062500 -v 0.562500 0.250000 0.187500 -v 0.812500 -0.000000 -0.125000 -v 0.812500 -0.000000 -0.187500 -v 0.562500 0.250000 0.062500 -v 0.812500 -0.000000 0.125000 -v 0.562500 -0.000000 0.062500 -v 0.812500 0.250000 -0.125000 -v 0.812500 0.250000 0.125000 -v 0.562500 -0.000000 -0.062500 -v 0.812500 0.250000 -0.187500 -v 0.812500 -0.000000 0.187500 -v 0.812500 0.250000 0.187500 -vt 0.250000 0.453125 -vt 0.156250 0.453125 -vt 0.156250 0.390625 -vt 0.250000 0.390625 -vt 0.000000 0.390625 -vt 0.093750 0.390625 -vt 0.093750 0.453125 -vt 0.000000 0.453125 -vt 0.140625 0.390625 -vt 0.109375 0.390625 -vt 0.109375 0.328125 -vt 0.140625 0.328125 -vt 0.093750 0.328125 -vt 0.078125 0.328125 -vt 0.062500 0.390625 -vt 0.015625 0.328125 -vt 0.031250 0.390625 -vt 0.000000 0.328125 -vt 0.125000 0.453125 -vt 0.125000 0.390625 -usemtl railgun -f 1135/508 1134/509 1136/510 1138/511 -f 1140/512 1137/513 1138/514 1136/515 -f 1139/516 1143/517 1145/518 1148/519 -f 1148/510 1141/513 1146/514 1139/509 -f 1145/510 1143/509 1147/514 1144/513 -f 1146/517 1141/518 1142/520 1149/513 -f 1146/521 1149/520 1137/513 1139/522 -f 1147/523 1143/524 1140/512 1151/525 -f 1147/517 1151/513 1150/520 1144/518 -f 1142/526 1135/508 1138/511 1149/527 -f 1150/526 1151/527 1136/511 1134/508 - -o upgrade_speed -v -1.562500 0.750000 -0.562500 -v -1.812500 0.625000 -0.562500 -v -1.562500 0.625000 -0.562500 -v -1.562500 0.625000 -0.437500 -v -1.812500 0.625000 -0.437500 -v -1.812500 0.750000 -0.562500 -v -1.562500 0.687500 -0.062500 -v -1.812500 0.687500 -0.062500 -v -1.812500 0.750000 -0.375000 -v -1.562500 0.750000 -0.375000 -v -1.812500 0.875000 -0.437501 -v -1.562500 0.875000 -0.437500 -v -1.812500 0.750000 -0.125000 -v -1.562500 0.750000 -0.125000 -v -1.812500 0.875000 -0.062500 -v -1.562500 0.875000 -0.062500 -v -1.562500 0.687500 -0.437500 -v -1.812500 0.687500 -0.437500 -v -0.937499 0.625000 -0.399570 -v -0.437500 0.625000 -0.399570 -v -0.437501 -0.000000 -0.399571 -v -0.437499 0.625000 -0.600428 -v -0.587069 0.625000 -0.749999 -v -0.787927 0.625000 -0.750000 -v -0.437501 -0.000000 0.399571 -v -0.587073 0.625000 0.250000 -v -0.787929 0.625000 0.750000 -v -0.787930 0.000000 0.250001 -v -0.437500 0.625000 0.399572 -v -0.937500 0.000000 0.600429 -v -0.437501 0.000000 0.600430 -v -1.437500 -0.000000 -0.399572 -v -1.437498 0.625000 -0.600428 -v -1.812500 0.750000 0.062500 -v -1.562500 0.750000 0.062500 -v -0.587073 -0.000000 0.750001 -v -0.787930 0.000000 0.750001 -v -0.437500 0.625000 0.600429 -v -0.937499 0.625000 0.600429 -v -0.587072 0.625000 0.750000 -v -0.937501 0.000000 0.399572 -v -0.587073 -0.000000 0.250000 -v -0.787930 0.625000 0.250000 -v -0.937500 0.625000 0.399571 -v -0.787927 0.625000 -0.249999 -v -0.587070 0.625000 -0.249999 -v -0.937500 -0.000000 -0.399571 -v -0.787928 -0.000000 -0.250000 -v -0.587071 -0.000000 -0.250000 -v -0.937499 -0.000000 -0.600429 -v -0.587070 -0.000000 -0.750000 -v -0.437500 -0.000000 -0.600429 -v -0.787927 -0.000000 -0.750000 -v -0.937499 0.625000 -0.600429 -v -1.937498 0.625000 -0.399571 -v -1.437499 0.625000 -0.399571 -v -1.787926 0.625000 -0.250000 -v -1.587070 0.625000 -0.250000 -v -1.937499 -0.000000 -0.399571 -v -1.787927 -0.000000 -0.250000 -v -1.587069 0.625000 -0.750000 -v -1.587070 -0.000000 -0.250000 -v -1.787926 0.625000 -0.750000 -v -1.937498 -0.000000 -0.600429 -v -1.587069 -0.000000 -0.750000 -v -1.437499 -0.000000 -0.600429 -v -1.787926 0.000000 -0.750000 -v -1.937498 0.625000 -0.600429 -vt 1.000000 0.046875 -vt 0.859375 0.046875 -vt 0.902344 0.093750 -vt 0.957031 0.093750 -vt 1.000000 0.296875 -vt 0.957031 0.250000 -vt 0.902344 0.250000 -vt 0.859375 0.296875 -vt 1.000000 0.093750 -vt 1.000000 0.250000 -vt 0.953125 0.250000 -vt 0.953125 0.093750 -vt 1.000000 0.000000 -vt 0.859375 0.000000 -vt 0.906250 0.093750 -vt 0.906250 0.250000 -vt 0.859375 0.250000 -vt 0.859375 0.093750 -vt 0.796875 0.289062 -vt 0.796875 0.304688 -vt 0.859375 0.304688 -vt 0.859375 0.289062 -vt 0.828125 0.284375 -vt 0.796875 0.257812 -vt 0.828125 0.262500 -vt 0.796875 0.292188 -vt 0.859375 0.292188 -vt 0.859375 0.270312 -vt 0.796875 0.270312 -vt 0.796875 0.320312 -vt 0.859375 0.320312 -vt 0.796875 0.167187 -vt 0.859375 0.167187 -vt 0.859375 0.145313 -vt 0.796875 0.145313 -vt 0.796875 0.171875 -vt 0.796875 0.140625 -vt 0.859375 0.140625 -vt 0.859375 0.171875 -vt 0.828125 0.145313 -vt 0.828125 0.167187 -vt 0.828125 0.187500 -vt 0.828125 0.250000 -vt 0.796875 0.265625 -vt 0.859375 0.265625 -vt 0.796875 0.250000 -vt 0.859375 0.187500 -vt 0.796875 0.187500 -vt 0.828125 0.289062 -vt 0.828125 0.304688 -vt 0.859375 0.257812 -vt 1.000000 0.343750 -vt 0.859375 0.343750 -usemtl railgun -f 1171/528 1170/529 1196/530 1197/531 -f 1172/532 1200/533 1199/534 1198/535 -f 1184/536 1217/537 1216/538 1212/539 -f 1207/528 1206/529 1208/530 1209/531 -f 1207/540 1184/528 1219/529 1206/541 -f 1184/528 1212/531 1214/530 1219/529 -f 1207/542 1209/539 1213/538 1183/543 -f 1207/542 1183/543 1217/544 1184/545 -f 1169/546 1156/547 1155/548 1168/549 -f 1168/550 1152/546 1163/551 1161/552 -f 1169/553 1168/554 1161/555 1160/556 -f 1157/549 1152/546 1154/557 1153/558 -f 1164/559 1165/560 1158/561 1159/562 -f 1166/563 1185/564 1186/565 1167/566 -f 1167/563 1186/564 1158/567 1165/568 -f 1164/568 1159/567 1185/565 1166/566 -f 1165/569 1161/570 1163/571 1167/563 -f 1162/572 1166/566 1167/563 1163/571 -f 1164/569 1166/566 1162/572 1160/570 -f 1160/573 1161/544 1165/574 1164/575 -f 1208/536 1211/537 1213/538 1209/539 -f 1212/539 1216/538 1218/543 1214/542 -f 1219/545 1214/542 1218/543 1215/544 -f 1206/542 1210/543 1211/544 1208/545 -f 1219/539 1215/538 1210/543 1206/542 -f 1152/546 1168/576 1155/577 1154/557 -f 1157/549 1169/550 1160/552 1162/578 -f 1169/576 1157/549 1153/558 1156/577 -f 1157/549 1162/578 1163/551 1152/546 -f 1196/536 1199/537 1200/538 1197/539 -f 1205/539 1201/538 1198/543 1170/542 -f 1171/540 1173/528 1205/529 1170/541 -f 1173/528 1174/531 1175/530 1205/529 -f 1170/542 1198/543 1199/544 1196/545 -f 1192/528 1179/531 1193/530 1176/529 -f 1181/540 1192/528 1176/529 1182/541 -f 1205/545 1175/542 1204/543 1201/544 -f 1181/528 1182/529 1187/530 1188/531 -f 1174/539 1202/538 1204/543 1175/542 -f 1217/532 1215/535 1218/534 1216/533 -f 1173/536 1203/537 1202/538 1174/539 -f 1183/532 1213/533 1211/534 1210/535 -f 1183/579 1210/580 1215/535 1217/532 -f 1171/542 1197/539 1200/538 1172/543 -f 1171/542 1172/543 1203/544 1173/545 -f 1181/542 1190/543 1195/544 1192/545 -f 1181/542 1188/539 1178/538 1190/543 -f 1172/579 1198/580 1201/535 1203/532 -f 1187/536 1191/537 1178/538 1188/539 -f 1195/532 1180/535 1177/534 1194/533 -f 1203/532 1201/535 1204/534 1202/533 -f 1192/536 1195/537 1194/538 1179/539 -f 1179/539 1194/538 1177/543 1193/542 -f 1190/532 1178/533 1191/534 1189/535 -f 1190/579 1189/580 1180/535 1195/532 -f 1176/545 1193/542 1177/543 1180/544 -f 1182/542 1189/543 1191/544 1187/545 -f 1176/539 1180/538 1189/543 1182/542 - -o tubes -v -2.430566 0.623504 -0.218751 -v -2.607344 0.446729 -0.218751 -v -2.739927 0.579311 -0.218751 -v -2.563150 0.756088 -0.218751 -v -2.607344 0.446729 -0.031252 -v -2.739927 0.579311 -0.031253 -v -2.430566 0.623504 -0.031253 -v -2.563149 0.756087 -0.031252 -v -2.408469 0.689795 -0.187501 -v -2.452663 0.645601 -0.187501 -v -2.541053 0.733991 -0.187501 -v -2.496859 0.778185 -0.187501 -v -2.452663 0.645601 -0.062503 -v -2.408469 0.689795 -0.062503 -v -2.496859 0.778185 -0.062502 -v -2.541053 0.733991 -0.062503 -v -2.386372 0.756087 -0.156251 -v -2.430566 0.711892 -0.156251 -v -2.469236 0.750562 -0.156251 -v -2.425042 0.794756 -0.156251 -v -2.430566 0.711892 -0.093753 -v -2.386372 0.756087 -0.093752 -v -2.425042 0.794756 -0.093752 -v -2.469236 0.750562 -0.093753 -v -2.469236 0.750562 0.156249 -v -2.425042 0.794756 0.156249 -v -2.386372 0.756087 0.156249 -v -2.430566 0.711892 0.156249 -v -2.425042 0.794756 0.093751 -v -2.469236 0.750562 0.093751 -v -2.430566 0.711892 0.093751 -v -2.386372 0.756087 0.093751 -v -2.541053 0.733991 0.187499 -v -2.496859 0.778185 0.187499 -v -2.408469 0.689795 0.187499 -v -2.452663 0.645601 0.187499 -v -2.496859 0.778185 0.062501 -v -2.541053 0.733991 0.062501 -v -2.452663 0.645601 0.062501 -v -2.408469 0.689795 0.062501 -v -2.563149 0.756087 0.218749 -v -2.430566 0.623504 0.218749 -v -2.739927 0.579311 0.218749 -v -2.607344 0.446729 0.218750 -v -2.563150 0.756088 0.031251 -v -2.739927 0.579311 0.031251 -v -2.607344 0.446729 0.031251 -v -2.430566 0.623504 0.031251 -vt 0.218750 0.500000 -vt 0.156250 0.500000 -vt 0.156250 0.546875 -vt 0.218750 0.546875 -vt 0.203125 0.500000 -vt 0.203125 0.546875 -vt 0.250000 0.500000 -vt 0.250000 0.546875 -vt 0.242188 0.531250 -vt 0.242188 0.546875 -vt 0.210938 0.546875 -vt 0.210938 0.531250 -vt 0.242188 0.500000 -vt 0.242188 0.515625 -vt 0.210938 0.515625 -vt 0.210938 0.500000 -vt 0.242188 0.507812 -vt 0.242188 0.539062 -vt 0.210938 0.539062 -vt 0.210938 0.507812 -vt 0.218750 0.539062 -vt 0.203125 0.539062 -vt 0.203125 0.507812 -vt 0.218750 0.507812 -vt 0.234375 0.507812 -vt 0.250000 0.507812 -vt 0.250000 0.539062 -vt 0.234375 0.539062 -vt 0.218750 0.531250 -vt 0.218750 0.515625 -vt 0.234375 0.515625 -vt 0.234375 0.531250 -usemtl railgun -f 1220/581 1221/582 1222/583 1223/584 -f 1221/585 1224/586 1225/583 1222/582 -f 1224/583 1226/584 1227/581 1225/582 -f 1226/587 1220/588 1223/586 1227/585 -f 1223/584 1222/583 1225/582 1227/581 -f 1221/582 1220/581 1226/584 1224/583 -f 1228/589 1229/590 1230/591 1231/592 -f 1232/593 1233/594 1234/595 1235/596 -f 1233/597 1228/598 1231/599 1234/600 -f 1231/601 1230/602 1235/603 1234/604 -f 1233/605 1232/606 1229/607 1228/608 -f 1236/609 1237/610 1238/611 1239/612 -f 1240/609 1241/610 1242/611 1243/612 -f 1241/609 1236/610 1239/611 1242/612 -f 1239/609 1238/610 1243/611 1242/612 -f 1241/609 1240/610 1237/611 1236/612 -f 1246/609 1247/610 1250/611 1251/612 -f 1248/609 1249/610 1244/611 1245/612 -f 1246/609 1251/610 1248/611 1245/612 -f 1247/609 1246/610 1245/611 1244/612 -f 1251/609 1250/610 1249/611 1248/612 -f 1254/605 1255/606 1258/607 1259/608 -f 1256/601 1257/602 1252/603 1253/604 -f 1254/597 1259/598 1256/599 1253/600 -f 1255/593 1254/594 1253/595 1252/596 -f 1259/589 1258/590 1257/591 1256/592 -f 1266/582 1267/581 1261/584 1263/583 -f 1264/584 1265/583 1262/582 1260/581 -f 1261/587 1267/588 1264/586 1260/585 -f 1263/583 1261/584 1260/581 1262/582 -f 1266/585 1263/586 1262/583 1265/582 -f 1267/581 1266/582 1265/583 1264/584 \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/sounds.json b/src/main/resources/assets/orbsat/sounds.json deleted file mode 100644 index e0baee0..0000000 --- a/src/main/resources/assets/orbsat/sounds.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "defenderLock": { - "category": "block", - "sounds": [ - "orbsat:defenderLock" - ] - }, - "start": { - "category": "block", - "sounds": [ - "orbsat:start" - ] - }, - "middle": { - "category": "block", - "sounds": [ - "orbsat:middle" - ] - }, - "satelliteLaunch": { - "category": "block", - "sounds": [ - "orbsat:satelliteLaunch" - ] - }, - "explode": { - "category": "block", - "sounds": [ - "orbsat:explode" - ] - }, - "reentry": { - "category": "block", - "sounds": [ - "orbsat:reentry" - ] - }, - "booming": { - "category": "block", - "sounds": [ - "orbsat:booming" - ] - }, - "digging": { - "category": "block", - "sounds": [ - "orbsat:digging" - ] - }, - "startCharging": { - "category": "block", - "sounds": [ - "orbsat:startCharging" - ] - }, - "helios": { - "category": "block", - "sounds": [ - "orbsat:helios" - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/sounds/booming.ogg b/src/main/resources/assets/orbsat/sounds/booming.ogg deleted file mode 100644 index 43977a9..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/booming.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/defenderLock.ogg b/src/main/resources/assets/orbsat/sounds/defenderLock.ogg deleted file mode 100644 index 53dc884..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/defenderLock.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/digging.ogg b/src/main/resources/assets/orbsat/sounds/digging.ogg deleted file mode 100644 index beea10c..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/digging.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/explode.ogg b/src/main/resources/assets/orbsat/sounds/explode.ogg deleted file mode 100644 index 36b1b17..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/explode.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/helios.ogg b/src/main/resources/assets/orbsat/sounds/helios.ogg deleted file mode 100644 index 8d6ac4c..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/helios.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/middle.ogg b/src/main/resources/assets/orbsat/sounds/middle.ogg deleted file mode 100644 index 2d15d94..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/middle.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/reentry.ogg b/src/main/resources/assets/orbsat/sounds/reentry.ogg deleted file mode 100644 index f4063d2..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/reentry.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/satelliteLaunch.ogg b/src/main/resources/assets/orbsat/sounds/satelliteLaunch.ogg deleted file mode 100644 index 33e7282..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/satelliteLaunch.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/start.ogg b/src/main/resources/assets/orbsat/sounds/start.ogg deleted file mode 100644 index df0034b..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/start.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/sounds/startCharging.ogg b/src/main/resources/assets/orbsat/sounds/startCharging.ogg deleted file mode 100644 index 2c3e2d8..0000000 Binary files a/src/main/resources/assets/orbsat/sounds/startCharging.ogg and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/defender.png b/src/main/resources/assets/orbsat/textures/blocks/defender.png deleted file mode 100644 index 7550e89..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/defender.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/device_base.png b/src/main/resources/assets/orbsat/textures/blocks/device_base.png deleted file mode 100644 index d721a0a..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/device_base.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_back.png b/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_back.png deleted file mode 100644 index 702c05e..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_back.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_front.png b/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_front.png deleted file mode 100644 index e0c9fe5..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_front.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_side.png b/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_side.png deleted file mode 100644 index 46a638c..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/device_satelliteLauncher_side.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/extender.png b/src/main/resources/assets/orbsat/textures/blocks/extender.png deleted file mode 100644 index d60c496..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/extender.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/laserLow.png b/src/main/resources/assets/orbsat/textures/blocks/laserLow.png deleted file mode 100644 index 4a65bac..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/laserLow.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/overrider.png b/src/main/resources/assets/orbsat/textures/blocks/overrider.png deleted file mode 100644 index 5f3fc46..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/overrider.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/photonAccelerator.png b/src/main/resources/assets/orbsat/textures/blocks/photonAccelerator.png deleted file mode 100644 index 62fb9a3..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/photonAccelerator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/photonDecelerator.png b/src/main/resources/assets/orbsat/textures/blocks/photonDecelerator.png deleted file mode 100644 index 82d3c86..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/photonDecelerator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/satelite.png b/src/main/resources/assets/orbsat/textures/blocks/satelite.png deleted file mode 100644 index 44d1480..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/satelite.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/satellite_assembler.png b/src/main/resources/assets/orbsat/textures/blocks/satellite_assembler.png deleted file mode 100644 index bf5ea50..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/satellite_assembler.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/solarPanel.png b/src/main/resources/assets/orbsat/textures/blocks/solarPanel.png deleted file mode 100644 index db7bc96..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/solarPanel.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/blocks/solarPanelTop.png b/src/main/resources/assets/orbsat/textures/blocks/solarPanelTop.png deleted file mode 100644 index 98da98b..0000000 Binary files a/src/main/resources/assets/orbsat/textures/blocks/solarPanelTop.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/entity/laserLight.png b/src/main/resources/assets/orbsat/textures/entity/laserLight.png deleted file mode 100644 index 738780c..0000000 Binary files a/src/main/resources/assets/orbsat/textures/entity/laserLight.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/entity/meteor.png b/src/main/resources/assets/orbsat/textures/entity/meteor.png deleted file mode 100644 index 3a41a12..0000000 Binary files a/src/main/resources/assets/orbsat/textures/entity/meteor.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/extender.png b/src/main/resources/assets/orbsat/textures/gui/extender.png deleted file mode 100644 index a9e6c0e..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/extender.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/gui.png b/src/main/resources/assets/orbsat/textures/gui/gui.png deleted file mode 100644 index 332b852..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/gui.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/photonAccelerator.png b/src/main/resources/assets/orbsat/textures/gui/photonAccelerator.png deleted file mode 100644 index 025989a..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/photonAccelerator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/photonDecelerator.png b/src/main/resources/assets/orbsat/textures/gui/photonDecelerator.png deleted file mode 100644 index 953d36f..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/photonDecelerator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/photonInverter.png b/src/main/resources/assets/orbsat/textures/gui/photonInverter.png deleted file mode 100644 index 48ada67..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/photonInverter.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/gui/photonInverterAdv.png b/src/main/resources/assets/orbsat/textures/gui/photonInverterAdv.png deleted file mode 100644 index 343668b..0000000 Binary files a/src/main/resources/assets/orbsat/textures/gui/photonInverterAdv.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mki.png b/src/main/resources/assets/orbsat/textures/items/classicSatellite_mki.png deleted file mode 100644 index 2a74f41..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mki.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkii.png b/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkii.png deleted file mode 100644 index 4c4c965..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkii.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkiii.png b/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkiii.png deleted file mode 100644 index 73086a8..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/classicSatellite_mkiii.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png b/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png deleted file mode 100644 index d02b87a..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png.mcmeta b/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png.mcmeta deleted file mode 100644 index 6a3c028..0000000 --- a/src/main/resources/assets/orbsat/textures/items/designatorCircuit.png.mcmeta +++ /dev/null @@ -1,15 +0,0 @@ -{ - "animation": { - "frametime": 1, - "frames": [ - { "index": 0, "time": 2 }, - { "index": 1, "time": 2 }, - { "index": 2, "time": 2 }, - { "index": 3, "time": 2 }, - { "index": 4, "time": 2 }, - { "index": 5, "time": 2 }, - { "index": 6, "time": 2 }, - { "index": 7, "time": 2 } - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/orbsat/textures/items/laserDesignator.png b/src/main/resources/assets/orbsat/textures/items/laserDesignator.png deleted file mode 100644 index 4112f7c..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/laserDesignator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/photonCapacitor.png b/src/main/resources/assets/orbsat/textures/items/photonCapacitor.png deleted file mode 100644 index 2e5d2d9..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/photonCapacitor.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/photonConcentrator.png b/src/main/resources/assets/orbsat/textures/items/photonConcentrator.png deleted file mode 100644 index 6b12bfd..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/photonConcentrator.png and /dev/null differ diff --git a/src/main/resources/assets/orbsat/textures/items/photonLens.png b/src/main/resources/assets/orbsat/textures/items/photonLens.png deleted file mode 100644 index c44cb3d..0000000 Binary files a/src/main/resources/assets/orbsat/textures/items/photonLens.png and /dev/null differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index cd2bf88..f480667 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,15 +1,16 @@ [ { - "modid": "orbsat", - "name": "Orbital Satellite", - "description": "Big laser, big construct, big boom !", + "modid": "examplemod", + "name": "Example Mod", + "description": "Example placeholder mod.", "version": "${version}", "mcversion": "${mcversion}", "url": "", "updateUrl": "", - "authorList": ["JackCarterSmith"], + "authorList": ["ExampleDude"], + "credits": "The Forge and FML guys, for making this example", "logoFile": "", "screenshots": [], - "dependencies": ["CompatLayer"] + "dependencies": [] } ] diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index e4c3129..4018267 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,7 @@ { - "pack": { - "pack_format": 1, - "description": "Resources used for Orbital Satellite" - } -} \ No newline at end of file + "pack": { + "description": "examplemod resources", + "pack_format": 3, + "_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.lang)." + } +}