converted mod to use Hals Vehicle Framework
This commit is contained in:
+40
-122
@@ -1,154 +1,72 @@
|
|||||||
plugins {
|
buildscript {
|
||||||
id 'eclipse'
|
repositories {
|
||||||
id 'idea'
|
maven { url = 'https://maven.minecraftforge.net' }
|
||||||
id 'maven-publish'
|
maven {url = 'F:\\Hals Mod 1.0\\HalsVehicleFramework\\HalsVehicleFramework\\build'}
|
||||||
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
|
mavenCentral()
|
||||||
id 'org.spongepowered.mixin' version '0.7.+'
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '6.0.+', changing: true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
version = mod_version
|
apply plugin: 'net.minecraftforge.gradle'
|
||||||
group = mod_group_id
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
base {
|
version = '1.0'
|
||||||
archivesName = mod_id
|
group = 'net.halbear.steampowered'
|
||||||
}
|
archivesBaseName = 'hals_steampowered'
|
||||||
|
|
||||||
// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17.
|
|
||||||
java.toolchain.languageVersion = JavaLanguageVersion.of(8)
|
java.toolchain.languageVersion = JavaLanguageVersion.of(8)
|
||||||
|
|
||||||
println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
|
repositories {
|
||||||
|
flatDir {
|
||||||
|
dirs 'libs'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
mappings channel: mapping_channel, version: mapping_version
|
mappings channel: mapping_channel, version: mapping_version
|
||||||
copyIdeResources = true
|
|
||||||
|
|
||||||
runs {
|
runs {
|
||||||
// applies to all the run configs below
|
client {
|
||||||
configureEach {
|
|
||||||
workingDirectory project.file('run')
|
workingDirectory project.file('run')
|
||||||
|
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
property 'forge.logging.markers', 'REGISTRIES'
|
||||||
|
|
||||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
|
jvmArgs = [
|
||||||
|
"--add-exports=java.base/sun.security.util=ALL-UNNAMED",
|
||||||
|
"--add-opens=java.base/java.util.jar=ALL-UNNAMED"
|
||||||
|
]
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
"${mod_id}" {
|
hals_steampowered {
|
||||||
source sourceSets.main
|
source sourceSets.main
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
client {
|
|
||||||
// this block needs to be here for runClient to exist
|
|
||||||
arg "-mixin.config=hals_steampowered.mixin.json"
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
server {
|
||||||
args '--nogui'
|
workingDirectory project.file('run')
|
||||||
}
|
|
||||||
|
|
||||||
data {
|
property 'forge.logging.markers', 'REGISTRIES'
|
||||||
// example of overriding the workingDirectory set in configureEach above
|
property 'forge.logging.console.level', 'debug'
|
||||||
workingDirectory project.file('run-data')
|
|
||||||
|
|
||||||
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
|
jvmArgs = [
|
||||||
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
"--add-exports=java.base/sun.security.util=ALL-UNNAMED",
|
||||||
}
|
"--add-opens=java.base/java.util.jar=ALL-UNNAMED"
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Include resources generated by data generators.
|
|
||||||
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
// Put repositories for dependencies here
|
|
||||||
// ForgeGradle automatically adds the Forge maven and Maven Central for you
|
|
||||||
// If you have mod jar dependencies in ./libs, you can declare them as a repository like so:
|
|
||||||
// flatDir {
|
|
||||||
// dir 'libs'
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Specify the version of Minecraft to use.
|
|
||||||
// Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact.
|
|
||||||
// The "userdev" classifier will be requested and setup by ForgeGradle.
|
|
||||||
// If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"],
|
|
||||||
// then special handling is done to allow a setup of a vanilla dependency without the use of an external repository.
|
|
||||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
|
||||||
implementation 'org.spongepowered:mixingradle:0.7.+'
|
|
||||||
// Real mod deobf dependency examples - these get remapped to your current mappings
|
|
||||||
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency
|
|
||||||
// runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency
|
|
||||||
// implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency
|
|
||||||
|
|
||||||
// Example mod dependency using a mod jar from ./libs with a flat dir repository
|
|
||||||
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
|
|
||||||
// The group id is ignored when searching -- in this case, it is "blank"
|
|
||||||
// implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}")
|
|
||||||
|
|
||||||
// For more info:
|
|
||||||
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
|
|
||||||
// http://www.gradle.org/docs/current/userguide/dependency_management.html
|
|
||||||
}
|
|
||||||
// This block of code expands all declared replace properties in the specified resource targets.
|
|
||||||
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
|
|
||||||
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
|
|
||||||
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
|
|
||||||
tasks.named('processResources', ProcessResources).configure {
|
|
||||||
var replaceProperties = [
|
|
||||||
minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,
|
|
||||||
forge_version: forge_version, forge_version_range: forge_version_range,
|
|
||||||
loader_version_range: loader_version_range,
|
|
||||||
mod_id: mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,
|
|
||||||
mod_authors: mod_authors, mod_description: mod_description,
|
|
||||||
]
|
]
|
||||||
inputs.properties replaceProperties
|
|
||||||
|
|
||||||
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
|
mods {
|
||||||
expand replaceProperties + [project: project]
|
hals_steampowered {
|
||||||
}
|
source sourceSets.main
|
||||||
}
|
|
||||||
|
|
||||||
// Example for how to get properties into the manifest for reading at runtime.
|
|
||||||
tasks.named('jar', Jar).configure {
|
|
||||||
manifest {
|
|
||||||
attributes([
|
|
||||||
'Specification-Title' : mod_id,
|
|
||||||
'Specification-Vendor' : mod_authors,
|
|
||||||
'Specification-Version' : '1', // We are version 1 of ourselves
|
|
||||||
'Implementation-Title' : project.name,
|
|
||||||
'Implementation-Version' : project.jar.archiveVersion,
|
|
||||||
'Implementation-Vendor' : mod_authors,
|
|
||||||
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
|
|
||||||
'TweakClass' : 'org.spongepowered.asm.launch.MixinTweaker',
|
|
||||||
'TweakOrder' : 0,
|
|
||||||
'MixinConfigs' : 'hals_steampowered.mixin.json'
|
|
||||||
])
|
|
||||||
}
|
|
||||||
rename 'mixin.refmap.json', 'hals_steampowered.mixin-refmap.json'
|
|
||||||
// This is the preferred method to reobfuscate your jar file
|
|
||||||
finalizedBy 'reobfJar'
|
|
||||||
}
|
|
||||||
|
|
||||||
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing:
|
|
||||||
// tasks.named('publish').configure {
|
|
||||||
// dependsOn 'reobfJar'
|
|
||||||
// }
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
register('mavenJava', MavenPublication) {
|
|
||||||
artifact jar
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url "file://${project.projectDir}/mcmodsrepo"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
dependencies {
|
||||||
tasks.withType(JavaCompile).configureEach {
|
minecraft 'net.minecraftforge:forge:1.16.5-36.2.26'
|
||||||
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
compileOnly fg.deobf("net.halbear.hvf:hals_vehicle_framework:1.0")
|
||||||
|
runtimeOnly fg.deobf("net.halbear.hvf:hals_vehicle_framework:1.0")
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -1,7 +1,9 @@
|
|||||||
package net.halbear.steampowered.registry.entity;
|
package net.halbear.steampowered.registry.entity;
|
||||||
|
|
||||||
|
import net.halbear.hvf.Halsvehicleframework;
|
||||||
|
import net.halbear.hvf.UsageExamples.Aeroplane.Aeroplane;
|
||||||
import net.halbear.steampowered.HalsSteampowered;
|
import net.halbear.steampowered.HalsSteampowered;
|
||||||
import net.halbear.steampowered.trains.Steam_Alice_040;
|
import net.halbear.steampowered.trains.rendering.SteamLocomotive;
|
||||||
import net.minecraft.entity.EntityClassification;
|
import net.minecraft.entity.EntityClassification;
|
||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
@@ -13,10 +15,9 @@ import net.minecraftforge.registries.ForgeRegistries;
|
|||||||
public class ModEntities {
|
public class ModEntities {
|
||||||
public static DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, HalsSteampowered.MODID);
|
public static DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, HalsSteampowered.MODID);
|
||||||
|
|
||||||
public static final RegistryObject<EntityType<Steam_Alice_040>> STEAM_ALICE_040 = ENTITIES.register("steam_engine_welsh_0-4-0",()->
|
public static final RegistryObject<EntityType<SteamLocomotive>> USA_040 =
|
||||||
EntityType.Builder.of(Steam_Alice_040::new, EntityClassification.MISC)
|
ENTITIES.register("usa_040", ()-> EntityType.Builder.of(SteamLocomotive::new,
|
||||||
.sized(2f,1.5f)
|
EntityClassification.MISC ).sized(1f,2f).build(new ResourceLocation(HalsSteampowered.MODID, "usa_040").toString()));
|
||||||
.build(new ResourceLocation(HalsSteampowered.MODID, "steam_alice_040").toString()));
|
|
||||||
|
|
||||||
public static void register(IEventBus eventBus){
|
public static void register(IEventBus eventBus){
|
||||||
ENTITIES.register(eventBus);
|
ENTITIES.register(eventBus);
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package net.halbear.steampowered.registry.utility;
|
package net.halbear.steampowered.registry.utility;
|
||||||
|
|
||||||
|
import net.halbear.steampowered.registry.entity.ModEntities;
|
||||||
|
import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.AeroplaneRenderer;
|
||||||
import net.halbear.steampowered.HalsSteampowered;
|
import net.halbear.steampowered.HalsSteampowered;
|
||||||
import net.halbear.steampowered.registry.blocks.ModBlocks;
|
import net.halbear.steampowered.registry.blocks.ModBlocks;
|
||||||
|
import net.halbear.steampowered.trains.rendering.renderers.SteamLocomotiveRenderer;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
@@ -13,6 +16,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
|||||||
import net.minecraftforge.client.event.EntityViewRenderEvent;
|
import net.minecraftforge.client.event.EntityViewRenderEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.RegistryObject;
|
import net.minecraftforge.fml.RegistryObject;
|
||||||
|
import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||||
|
|
||||||
@@ -39,5 +43,6 @@ public class ClientEventHandler {
|
|||||||
ModBlocks.INCLINE_TRAIN_TRACK,
|
ModBlocks.INCLINE_TRAIN_TRACK,
|
||||||
ModBlocks.MOUNTAIN_INCLINE_TRAIN_TRACK
|
ModBlocks.MOUNTAIN_INCLINE_TRAIN_TRACK
|
||||||
);
|
);
|
||||||
|
RenderingRegistry.registerEntityRenderingHandler(ModEntities.USA_040.get(), SteamLocomotiveRenderer::new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
package net.halbear.steampowered.registry.utility.mixin;
|
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.renderer.ActiveRenderInfo;
|
|
||||||
import net.minecraft.client.settings.PointOfView;
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.LivingEntity;
|
|
||||||
import net.minecraft.util.Direction;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.util.math.MathHelper;
|
|
||||||
import net.minecraft.util.math.vector.Quaternion;
|
|
||||||
import net.minecraft.util.math.vector.Vector3d;
|
|
||||||
import net.minecraft.util.math.vector.Vector3f;
|
|
||||||
import net.minecraft.world.IBlockReader;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
||||||
|
|
||||||
@Mixin(ActiveRenderInfo.class)
|
|
||||||
public abstract class CameraMixin {
|
|
||||||
|
|
||||||
@Inject(method = "setup", at = @At(value = "TAIL"),cancellable = true)
|
|
||||||
private void setup(IBlockReader currentRenderedLevel, Entity entity, boolean isDetached, boolean isMirrored, float partialTicks, CallbackInfo ci){
|
|
||||||
|
|
||||||
//if(entity.isPassenger() && Minecraft.getInstance().options.getCameraType() != PointOfView.FIRST_PERSON){ //this was test code to make sure it works, it does work
|
|
||||||
//this.move(-this.getMaxZoom(8.0D), 1.0D, 0.0D);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
@Shadow protected abstract void move(double p_216782_1_, double p_216782_3_, double p_216782_5_);
|
|
||||||
@Shadow protected abstract double getMaxZoom(double p_216779_1_);
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
package net.halbear.steampowered.trains;
|
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.EntityType;
|
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
|
||||||
import net.minecraft.network.IPacket;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class AbstractTrainLocomotiveEntity extends Entity implements ISteampoweredEntityTrainLocomotive{
|
|
||||||
|
|
||||||
public AbstractTrainLocomotiveEntity(EntityType<?> EntityType, World World) {
|
|
||||||
super(EntityType, World);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void defineSynchedData() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void readAdditionalSaveData(CompoundNBT p_70037_1_) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addAdditionalSaveData(CompoundNBT p_213281_1_) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPacket<?> getAddEntityPacket() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package net.halbear.steampowered.trains;
|
|
||||||
|
|
||||||
public interface ISteampoweredEntityTrainLocomotive {
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package net.halbear.steampowered.trains;
|
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.EntityType;
|
|
||||||
import net.minecraft.entity.MobEntity;
|
|
||||||
import net.minecraft.entity.ai.attributes.Attribute;
|
|
||||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
|
||||||
import net.minecraft.entity.ai.attributes.Attributes;
|
|
||||||
import net.minecraft.entity.item.minecart.MinecartEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class Steam_Alice_040 extends AbstractTrainLocomotiveEntity {
|
|
||||||
|
|
||||||
public Steam_Alice_040(EntityType<?> EntityType, World World) {
|
|
||||||
super(EntityType, World);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
package net.halbear.steampowered.trains;
|
|
||||||
|
|
||||||
import net.minecraft.entity.EntityType;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class Steam_USA_narrow_shunter_040 extends AbstractTrainLocomotiveEntity {
|
|
||||||
|
|
||||||
public Steam_USA_narrow_shunter_040(EntityType<?> EntityType, World World) {
|
|
||||||
super(EntityType, World);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
package net.halbear.steampowered.trains;
|
|
||||||
|
|
||||||
import net.minecraft.entity.EntityType;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class Steam_Welsh_Mountain_060 extends AbstractTrainLocomotiveEntity {
|
|
||||||
|
|
||||||
public Steam_Welsh_Mountain_060(EntityType<?> EntityType, World World) {
|
|
||||||
super(EntityType, World);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package net.halbear.steampowered.trains.rendering;
|
||||||
|
|
||||||
|
import net.halbear.hvf.Entity.VehicleBaseEntity;
|
||||||
|
import net.halbear.hvf.Util.Client.VehicleCameraPreset;
|
||||||
|
import net.halbear.hvf.Util.Client.VehicleCameraSettings;
|
||||||
|
import net.halbear.hvf.Util.VehicleData.FuelType;
|
||||||
|
import net.halbear.hvf.Util.VehicleData.VehicleBuildInfo;
|
||||||
|
import net.halbear.hvf.Util.VehicleData.VehicleClassification;
|
||||||
|
import net.minecraft.entity.EntityType;
|
||||||
|
import net.minecraft.util.math.vector.Vector3d;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class SteamLocomotive extends VehicleBaseEntity {
|
||||||
|
|
||||||
|
static VehicleBuildInfo vehicleBuildInfo = new VehicleBuildInfo(VehicleClassification.RailVehicle)
|
||||||
|
.SetFuelType(FuelType.FossilFuelsIncludingWood)
|
||||||
|
.AddFuelTank(1000f)
|
||||||
|
.SetPilotSeat(new Vector3d(0,-1.5D,-1D));
|
||||||
|
|
||||||
|
public SteamLocomotive(EntityType<?> entityTypeIn, World worldIn) {
|
||||||
|
super(entityTypeIn, worldIn, vehicleBuildInfo);
|
||||||
|
VehicleCameraSettings.AddEntityCameraPreset(this.getType(),
|
||||||
|
new VehicleCameraPreset(new Vector3f(0,0,4.5f),
|
||||||
|
new Vector3f(0,0,0),70,60));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void OnPunchedEvent(){
|
||||||
|
SetRenderState("DAMAGED");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,224 @@
|
|||||||
|
package net.halbear.steampowered.trains.rendering.models;// Made with Blockbench 5.1.4
|
||||||
|
// Exported for Minecraft version 1.15 - 1.16 with MCP mappings
|
||||||
|
// Paste this class into your mod and generate all required imports
|
||||||
|
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
|
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||||
|
import net.halbear.hvf.Entity.VehicleBaseEntity;
|
||||||
|
import net.minecraft.client.renderer.entity.model.EntityModel;
|
||||||
|
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||||
|
|
||||||
|
public class USA040_MCP extends EntityModel<VehicleBaseEntity> {
|
||||||
|
private final ModelRenderer train;
|
||||||
|
private final ModelRenderer piston2;
|
||||||
|
private final ModelRenderer cube_r1;
|
||||||
|
private final ModelRenderer cube_r2;
|
||||||
|
private final ModelRenderer piston;
|
||||||
|
private final ModelRenderer cube_r3;
|
||||||
|
private final ModelRenderer cube_r4;
|
||||||
|
private final ModelRenderer cabin;
|
||||||
|
private final ModelRenderer cube_r5;
|
||||||
|
private final ModelRenderer cube_r6;
|
||||||
|
private final ModelRenderer cube_r7;
|
||||||
|
private final ModelRenderer smokestack;
|
||||||
|
private final ModelRenderer boiler;
|
||||||
|
private final ModelRenderer cube_r8;
|
||||||
|
private final ModelRenderer cube_r9;
|
||||||
|
private final ModelRenderer cube_r10;
|
||||||
|
private final ModelRenderer cube_r11;
|
||||||
|
private final ModelRenderer buffer2;
|
||||||
|
private final ModelRenderer buffer;
|
||||||
|
private final ModelRenderer lamp;
|
||||||
|
private final ModelRenderer chasis;
|
||||||
|
private final ModelRenderer drivingwheelfront3;
|
||||||
|
private final ModelRenderer drivingwheelfront2;
|
||||||
|
|
||||||
|
public USA040_MCP() {
|
||||||
|
texWidth = 256;
|
||||||
|
texHeight = 256;
|
||||||
|
|
||||||
|
train = new ModelRenderer(this);
|
||||||
|
train.setPos(0.0F, 24.0F, 18.0F);
|
||||||
|
|
||||||
|
|
||||||
|
piston2 = new ModelRenderer(this);
|
||||||
|
piston2.setPos(-3.7381F, -8.4641F, -31.0F);
|
||||||
|
train.addChild(piston2);
|
||||||
|
piston2.texOffs(58, 4).addBox(-3.2619F, 4.4641F, -2.0F, 0.0F, 4.0F, 6.0F, 0.0F, false);
|
||||||
|
piston2.texOffs(0, 18).addBox(-1.7619F, 2.4641F, 4.0F, 0.0F, 6.0F, 17.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r1 = new ModelRenderer(this);
|
||||||
|
cube_r1.setPos(-1.7619F, 4.9641F, 0.5F);
|
||||||
|
piston2.addChild(cube_r1);
|
||||||
|
setRotationAngle(cube_r1, 0.0F, 0.0F, -0.7418F);
|
||||||
|
cube_r1.texOffs(104, 92).addBox(-1.5F, -1.5F, -2.5F, 3.0F, 3.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r2 = new ModelRenderer(this);
|
||||||
|
cube_r2.setPos(0.0F, 0.0F, 0.0F);
|
||||||
|
piston2.addChild(cube_r2);
|
||||||
|
setRotationAngle(cube_r2, 0.0F, 0.0F, -1.2217F);
|
||||||
|
cube_r2.texOffs(39, 21).addBox(-2.5F, 1.0F, -4.0F, 7.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
cube_r2.texOffs(46, 40).addBox(-4.5F, -1.0F, -1.0F, 9.0F, 2.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
piston = new ModelRenderer(this);
|
||||||
|
piston.setPos(3.7381F, -8.4641F, -31.0F);
|
||||||
|
train.addChild(piston);
|
||||||
|
piston.texOffs(0, 18).addBox(1.7619F, 2.4641F, 4.0F, 0.0F, 6.0F, 17.0F, 0.0F, true);
|
||||||
|
piston.texOffs(58, 4).addBox(3.2619F, 4.4641F, -2.0F, 0.0F, 4.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r3 = new ModelRenderer(this);
|
||||||
|
cube_r3.setPos(0.0F, 0.0F, 0.0F);
|
||||||
|
piston.addChild(cube_r3);
|
||||||
|
setRotationAngle(cube_r3, 0.0F, 0.0F, 1.2217F);
|
||||||
|
cube_r3.texOffs(46, 40).addBox(-4.5F, -1.0F, -1.0F, 9.0F, 2.0F, 2.0F, 0.0F, true);
|
||||||
|
cube_r3.texOffs(39, 21).addBox(-4.5F, 1.0F, -4.0F, 7.0F, 0.0F, 5.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r4 = new ModelRenderer(this);
|
||||||
|
cube_r4.setPos(1.7619F, 4.9641F, 0.5F);
|
||||||
|
piston.addChild(cube_r4);
|
||||||
|
setRotationAngle(cube_r4, 0.0F, 0.0F, 0.7418F);
|
||||||
|
cube_r4.texOffs(104, 92).addBox(-1.5F, -1.5F, -2.5F, 3.0F, 3.0F, 6.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cabin = new ModelRenderer(this);
|
||||||
|
cabin.setPos(-5.5F, -3.5F, -30.5F);
|
||||||
|
train.addChild(cabin);
|
||||||
|
cabin.texOffs(222, 251).addBox(-2.5F, -29.5F, 35.5F, 16.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(222, 251).addBox(-2.5F, -29.5F, 20.5F, 16.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(32, 112).addBox(4.5F, -28.5F, 19.5F, 2.0F, 3.0F, 18.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(160, 75).addBox(13.55F, -24.75F, 20.5F, 0.0F, 28.0F, 16.0F, 0.0F, true);
|
||||||
|
cabin.texOffs(160, 75).addBox(-2.55F, -24.75F, 20.5F, 0.0F, 28.0F, 16.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(76, 75).addBox(-2.5F, -2.75F, 20.5F, 16.0F, 1.0F, 16.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(88, 119).addBox(-2.5F, -25.5F, 35.5F, 16.0F, 23.0F, 1.0F, 0.0F, false);
|
||||||
|
cabin.texOffs(210, 93).addBox(-2.5F, -25.5F, 20.5F, 16.0F, 23.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r5 = new ModelRenderer(this);
|
||||||
|
cube_r5.setPos(5.5F, -12.5F, 24.5F);
|
||||||
|
cabin.addChild(cube_r5);
|
||||||
|
setRotationAngle(cube_r5, 0.0F, 3.1416F, 0.0F);
|
||||||
|
cube_r5.texOffs(122, 119).addBox(-8.0F, -10.0F, 0.75F, 16.0F, 20.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r6 = new ModelRenderer(this);
|
||||||
|
cube_r6.setPos(13.5F, -25.5F, 36.0F);
|
||||||
|
cabin.addChild(cube_r6);
|
||||||
|
setRotationAngle(cube_r6, 0.0F, 0.0F, 0.3491F);
|
||||||
|
cube_r6.texOffs(88, 52).addBox(-7.75F, -0.25F, -16.0F, 9.0F, 1.0F, 17.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r7 = new ModelRenderer(this);
|
||||||
|
cube_r7.setPos(-2.5F, -25.5F, 36.0F);
|
||||||
|
cabin.addChild(cube_r7);
|
||||||
|
setRotationAngle(cube_r7, 0.0F, 0.0F, -0.3491F);
|
||||||
|
cube_r7.texOffs(88, 52).addBox(-1.25F, -0.25F, -16.0F, 9.0F, 1.0F, 17.0F, 0.0F, false);
|
||||||
|
|
||||||
|
smokestack = new ModelRenderer(this);
|
||||||
|
smokestack.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(smokestack);
|
||||||
|
smokestack.texOffs(132, 36).addBox(-1.5F, -31.0F, -28.0F, 3.0F, 13.0F, 3.0F, 0.0F, false);
|
||||||
|
smokestack.texOffs(72, 125).addBox(-7.5F, -35.0F, -26.5F, 5.0F, 31.0F, 0.0F, 0.0F, false);
|
||||||
|
smokestack.texOffs(124, 79).addBox(-2.5F, -35.0F, -29.0F, 5.0F, 4.0F, 5.0F, 0.0F, false);
|
||||||
|
|
||||||
|
boiler = new ModelRenderer(this);
|
||||||
|
boiler.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(boiler);
|
||||||
|
boiler.texOffs(124, 70).addBox(-2.5F, -22.0F, -22.0F, 5.0F, 4.0F, 5.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(0, 12).addBox(-2.5F, -22.0F, -14.0625F, 5.0F, 5.0F, 6.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(48, 133).addBox(-6.35F, -14.1F, -7.05F, 6.0F, 8.0F, 2.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(32, 133).addBox(0.35F, -14.1F, -7.05F, 6.0F, 8.0F, 2.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(0, 0).addBox(0.0F, -36.0F, -35.0F, 0.0F, 30.0F, 44.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(36, 73).addBox(-5.0F, -27.0F, -9.0F, 0.0F, 21.0F, 18.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(0, 73).addBox(5.0F, -27.0F, -9.0F, 0.0F, 21.0F, 18.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(46, 51).addBox(-5.0F, -23.0F, -31.0F, 0.0F, 17.0F, 23.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(46, 51).addBox(5.0F, -23.0F, -31.0F, 0.0F, 17.0F, 23.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r8 = new ModelRenderer(this);
|
||||||
|
cube_r8.setPos(-5.0F, -18.0F, -19.5F);
|
||||||
|
boiler.addChild(cube_r8);
|
||||||
|
setRotationAngle(cube_r8, 0.0F, 0.0F, -0.3927F);
|
||||||
|
cube_r8.texOffs(188, 216).addBox(0.0F, -5.0F, -11.5F, 0.0F, 17.0F, 23.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r9 = new ModelRenderer(this);
|
||||||
|
cube_r9.setPos(5.0F, -18.0F, -19.5F);
|
||||||
|
boiler.addChild(cube_r9);
|
||||||
|
setRotationAngle(cube_r9, 0.0F, 0.0F, 0.3927F);
|
||||||
|
cube_r9.texOffs(188, 216).addBox(0.0F, -5.0F, -11.5F, 0.0F, 17.0F, 23.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r10 = new ModelRenderer(this);
|
||||||
|
cube_r10.setPos(0.0F, -10.5F, -4.75F);
|
||||||
|
boiler.addChild(cube_r10);
|
||||||
|
setRotationAngle(cube_r10, 3.1416F, 0.0F, 0.0F);
|
||||||
|
cube_r10.texOffs(126, 6).addBox(-4.0F, -4.5F, 0.0F, 8.0F, 9.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r11 = new ModelRenderer(this);
|
||||||
|
cube_r11.setPos(0.0F, -12.0F, -18.5F);
|
||||||
|
boiler.addChild(cube_r11);
|
||||||
|
setRotationAngle(cube_r11, 0.0F, 0.0F, 0.7854F);
|
||||||
|
cube_r11.texOffs(0, 0).addBox(-6.0F, -6.0F, -12.5F, 9.0F, 9.0F, 26.0F, 0.0F, false);
|
||||||
|
cube_r11.texOffs(138, 15).addBox(-5.0F, -5.0F, -12.75F, 7.0F, 7.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
buffer2 = new ModelRenderer(this);
|
||||||
|
buffer2.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(buffer2);
|
||||||
|
buffer2.texOffs(70, 7).addBox(-5.0F, -5.1F, -36.0F, 2.0F, 2.0F, 3.0F, 0.0F, false);
|
||||||
|
buffer2.texOffs(72, 0).addBox(-6.0F, -6.1F, -37.0F, 4.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
buffer = new ModelRenderer(this);
|
||||||
|
buffer.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(buffer);
|
||||||
|
buffer.texOffs(21, 138).addBox(3.0F, -5.1F, -36.0F, 2.0F, 2.0F, 3.0F, 0.0F, false);
|
||||||
|
buffer.texOffs(11, 138).addBox(2.0F, -6.1F, -37.0F, 4.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
lamp = new ModelRenderer(this);
|
||||||
|
lamp.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(lamp);
|
||||||
|
lamp.texOffs(0, 138).addBox(-1.5F, -23.1F, -33.0F, 3.0F, 3.0F, 5.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(96, 29).addBox(-1.5F, -23.1F, -35.0F, 3.0F, 3.0F, 2.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(9, 0).addBox(-2.5F, -20.0F, -34.0F, 5.0F, 0.0F, 6.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(12, 17).addBox(-1.2F, -20.0F, -34.0F, 0.0F, 2.0F, 6.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(12, 17).addBox(1.2F, -20.0F, -34.0F, 0.0F, 2.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
chasis = new ModelRenderer(this);
|
||||||
|
chasis.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(chasis);
|
||||||
|
chasis.texOffs(65, 0).addBox(-7.0F, -9.1F, -24.0F, 14.0F, 0.0F, 17.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(39, 0).addBox(-7.0F, -7.85F, -28.0F, 14.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(105, 33).addBox(-7.0F, -6.1F, -33.0F, 14.0F, 5.0F, 1.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(39, 5).addBox(-7.0F, -6.1F, -32.0F, 14.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(47, 12).addBox(-3.0F, -6.0F, -31.0F, 6.0F, 5.0F, 23.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(108, 15).addBox(-4.0F, -6.0F, -8.0F, 8.0F, 4.0F, 14.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(76, 40).addBox(-10.0F, -4.0F, -6.0F, 20.0F, 0.0F, 12.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(70, 17).addBox(-10.0F, -1.0F, -6.0F, 20.0F, 0.0F, 12.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(44, 10).addBox(-2.0F, -10.0F, -14.0F, 4.0F, 5.0F, 6.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(0, 0).addBox(-2.0F, -10.0F, -27.0F, 4.0F, 5.0F, 7.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(16, 8).addBox(0.0F, -6.1F, -37.0F, 0.0F, 5.0F, 4.0F, 0.0F, false);
|
||||||
|
|
||||||
|
drivingwheelfront3 = new ModelRenderer(this);
|
||||||
|
drivingwheelfront3.setPos(0.0F, -2.5F, -22.5F);
|
||||||
|
train.addChild(drivingwheelfront3);
|
||||||
|
drivingwheelfront3.texOffs(121, 2).addBox(-4.5F, -0.5F, -0.5F, 9.0F, 1.0F, 1.0F, 0.0F, false);
|
||||||
|
drivingwheelfront3.texOffs(123, 45).addBox(-5.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, false);
|
||||||
|
drivingwheelfront3.texOffs(123, 45).addBox(4.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, true);
|
||||||
|
|
||||||
|
drivingwheelfront2 = new ModelRenderer(this);
|
||||||
|
drivingwheelfront2.setPos(0.0F, -2.5F, -14.0F);
|
||||||
|
train.addChild(drivingwheelfront2);
|
||||||
|
drivingwheelfront2.texOffs(125, 61).addBox(-4.5F, -0.5F, -0.5F, 9.0F, 1.0F, 1.0F, 0.0F, false);
|
||||||
|
drivingwheelfront2.texOffs(123, 45).addBox(-5.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, false);
|
||||||
|
drivingwheelfront2.texOffs(123, 45).addBox(4.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setupAnim(VehicleBaseEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){
|
||||||
|
//previously the render function, render code was moved to a method below
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
|
||||||
|
train.render(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.xRot = x;
|
||||||
|
modelRenderer.yRot = y;
|
||||||
|
modelRenderer.zRot = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
+265
@@ -0,0 +1,265 @@
|
|||||||
|
package net.halbear.steampowered.trains.rendering.models;// Made with Blockbench 5.1.4
|
||||||
|
// Exported for Minecraft version 1.15 - 1.16 with MCP mappings
|
||||||
|
// Paste this class into your mod and generate all required imports
|
||||||
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
|
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||||
|
import net.halbear.hvf.Entity.VehicleBaseEntity;
|
||||||
|
import net.minecraft.client.renderer.entity.model.EntityModel;
|
||||||
|
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||||
|
|
||||||
|
|
||||||
|
public class USA040_MCP_DAMAGED extends EntityModel<VehicleBaseEntity> {
|
||||||
|
private final ModelRenderer train;
|
||||||
|
private final ModelRenderer piston2;
|
||||||
|
private final ModelRenderer cube_r1;
|
||||||
|
private final ModelRenderer cube_r2;
|
||||||
|
private final ModelRenderer piston;
|
||||||
|
private final ModelRenderer cube_r3;
|
||||||
|
private final ModelRenderer cube_r4;
|
||||||
|
private final ModelRenderer cabin;
|
||||||
|
private final ModelRenderer cube_r5;
|
||||||
|
private final ModelRenderer cube_r6;
|
||||||
|
private final ModelRenderer cube_r7;
|
||||||
|
private final ModelRenderer cube_r8;
|
||||||
|
private final ModelRenderer smokestack;
|
||||||
|
private final ModelRenderer boiler;
|
||||||
|
private final ModelRenderer cube_r9;
|
||||||
|
private final ModelRenderer cube_r10;
|
||||||
|
private final ModelRenderer cube_r11;
|
||||||
|
private final ModelRenderer cube_r12;
|
||||||
|
private final ModelRenderer cube_r13;
|
||||||
|
private final ModelRenderer cube_r14;
|
||||||
|
private final ModelRenderer cube_r15;
|
||||||
|
private final ModelRenderer cube_r16;
|
||||||
|
private final ModelRenderer buffer2;
|
||||||
|
private final ModelRenderer buffer;
|
||||||
|
private final ModelRenderer lamp;
|
||||||
|
private final ModelRenderer chasis;
|
||||||
|
private final ModelRenderer cube_r17;
|
||||||
|
private final ModelRenderer drivingwheelfront3;
|
||||||
|
private final ModelRenderer drivingwheelfront2;
|
||||||
|
|
||||||
|
public USA040_MCP_DAMAGED() {
|
||||||
|
texWidth = 256;
|
||||||
|
texHeight = 256;
|
||||||
|
|
||||||
|
train = new ModelRenderer(this);
|
||||||
|
train.setPos(0.0F, 24.0F, 18.0F);
|
||||||
|
|
||||||
|
|
||||||
|
piston2 = new ModelRenderer(this);
|
||||||
|
piston2.setPos(-3.7381F, -8.4641F, -31.0F);
|
||||||
|
train.addChild(piston2);
|
||||||
|
piston2.texOffs(58, 4).addBox(-3.2619F, 4.4641F, -2.0F, 0.0F, 4.0F, 6.0F, 0.0F, false);
|
||||||
|
piston2.texOffs(0, 18).addBox(-1.7619F, 2.4641F, 4.0F, 0.0F, 6.0F, 17.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r1 = new ModelRenderer(this);
|
||||||
|
cube_r1.setPos(-1.7619F, 4.9641F, 0.5F);
|
||||||
|
piston2.addChild(cube_r1);
|
||||||
|
setRotationAngle(cube_r1, 0.0F, 0.0F, -0.7418F);
|
||||||
|
cube_r1.texOffs(104, 92).addBox(-1.5F, -1.5F, -2.5F, 3.0F, 3.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r2 = new ModelRenderer(this);
|
||||||
|
cube_r2.setPos(0.0F, 0.0F, 0.0F);
|
||||||
|
piston2.addChild(cube_r2);
|
||||||
|
setRotationAngle(cube_r2, 0.0F, 0.0F, -1.2217F);
|
||||||
|
cube_r2.texOffs(39, 21).addBox(-2.5F, 1.0F, -4.0F, 7.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
cube_r2.texOffs(46, 40).addBox(-4.5F, -1.0F, -1.0F, 9.0F, 2.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
piston = new ModelRenderer(this);
|
||||||
|
piston.setPos(3.7381F, -8.4641F, -31.0F);
|
||||||
|
train.addChild(piston);
|
||||||
|
piston.texOffs(0, 18).addBox(1.7619F, 2.4641F, 4.0F, 0.0F, 6.0F, 17.0F, 0.0F, true);
|
||||||
|
piston.texOffs(58, 4).addBox(3.2619F, 4.4641F, -2.0F, 0.0F, 4.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r3 = new ModelRenderer(this);
|
||||||
|
cube_r3.setPos(0.0F, 0.0F, 0.0F);
|
||||||
|
piston.addChild(cube_r3);
|
||||||
|
setRotationAngle(cube_r3, 0.0F, 0.0F, 1.2217F);
|
||||||
|
cube_r3.texOffs(46, 40).addBox(-4.5F, -1.0F, -1.0F, 9.0F, 2.0F, 2.0F, 0.0F, true);
|
||||||
|
cube_r3.texOffs(39, 21).addBox(-4.5F, 1.0F, -4.0F, 7.0F, 0.0F, 5.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r4 = new ModelRenderer(this);
|
||||||
|
cube_r4.setPos(1.7619F, 4.9641F, 0.5F);
|
||||||
|
piston.addChild(cube_r4);
|
||||||
|
setRotationAngle(cube_r4, 0.0F, 0.0F, 0.7418F);
|
||||||
|
cube_r4.texOffs(104, 92).addBox(-1.5F, -1.5F, -2.5F, 3.0F, 3.0F, 6.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cabin = new ModelRenderer(this);
|
||||||
|
cabin.setPos(-5.5F, -3.5F, -30.5F);
|
||||||
|
train.addChild(cabin);
|
||||||
|
|
||||||
|
|
||||||
|
cube_r5 = new ModelRenderer(this);
|
||||||
|
cube_r5.setPos(5.5F, -12.5F, 24.5F);
|
||||||
|
cabin.addChild(cube_r5);
|
||||||
|
setRotationAngle(cube_r5, 0.0F, 3.1416F, 0.0F);
|
||||||
|
cube_r5.texOffs(122, 119).addBox(-8.0F, -10.0F, 0.75F, 16.0F, 20.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r6 = new ModelRenderer(this);
|
||||||
|
cube_r6.setPos(5.5F, -12.5F, 28.5F);
|
||||||
|
cabin.addChild(cube_r6);
|
||||||
|
setRotationAngle(cube_r6, -0.0435F, 0.0038F, 0.0872F);
|
||||||
|
cube_r6.texOffs(210, 93).addBox(-8.0F, -13.0F, -8.0F, 16.0F, 23.0F, 1.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(88, 119).addBox(-8.0F, -13.0F, 7.0F, 16.0F, 23.0F, 1.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(76, 75).addBox(-8.0F, 9.75F, -8.0F, 16.0F, 1.0F, 16.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(160, 75).addBox(-8.05F, -12.25F, -8.0F, 0.0F, 28.0F, 16.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(160, 75).addBox(8.05F, -12.25F, -8.0F, 0.0F, 28.0F, 16.0F, 0.0F, true);
|
||||||
|
cube_r6.texOffs(32, 112).addBox(-1.0F, -16.0F, -9.0F, 2.0F, 3.0F, 18.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(222, 251).addBox(-8.0F, -17.0F, -8.0F, 16.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
cube_r6.texOffs(222, 251).addBox(-8.0F, -17.0F, 7.0F, 16.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r7 = new ModelRenderer(this);
|
||||||
|
cube_r7.setPos(5.5F, -12.5F, 28.5F);
|
||||||
|
cabin.addChild(cube_r7);
|
||||||
|
setRotationAngle(cube_r7, -0.0395F, 0.0184F, 0.436F);
|
||||||
|
cube_r7.texOffs(88, 52).addBox(-4.6787F, -15.2022F, -8.5F, 9.0F, 1.0F, 17.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r8 = new ModelRenderer(this);
|
||||||
|
cube_r8.setPos(5.5F, -12.5F, 28.5F);
|
||||||
|
cabin.addChild(cube_r8);
|
||||||
|
setRotationAngle(cube_r8, -0.0421F, -0.0113F, -0.2616F);
|
||||||
|
cube_r8.texOffs(88, 52).addBox(-4.3213F, -15.2022F, -8.5F, 9.0F, 1.0F, 17.0F, 0.0F, false);
|
||||||
|
|
||||||
|
smokestack = new ModelRenderer(this);
|
||||||
|
smokestack.setPos(-2.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(smokestack);
|
||||||
|
setRotationAngle(smokestack, 0.0F, 0.0F, 0.1309F);
|
||||||
|
smokestack.texOffs(132, 36).addBox(-1.5F, -31.0F, -28.0F, 3.0F, 13.0F, 3.0F, 0.0F, false);
|
||||||
|
smokestack.texOffs(72, 125).addBox(-7.5F, -35.0F, -26.5F, 5.0F, 31.0F, 0.0F, 0.0F, false);
|
||||||
|
smokestack.texOffs(124, 79).addBox(-2.5F, -35.0F, -29.0F, 5.0F, 4.0F, 5.0F, 0.0F, false);
|
||||||
|
|
||||||
|
boiler = new ModelRenderer(this);
|
||||||
|
boiler.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(boiler);
|
||||||
|
boiler.texOffs(124, 70).addBox(-2.5F, -22.0F, -22.0F, 5.0F, 4.0F, 5.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(0, 12).addBox(-2.5F, -22.0F, -14.0625F, 5.0F, 5.0F, 6.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(48, 133).addBox(-6.35F, -14.1F, -7.05F, 6.0F, 8.0F, 2.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(32, 133).addBox(0.35F, -14.1F, -7.05F, 6.0F, 8.0F, 2.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(46, 51).addBox(-5.0F, -23.0F, -31.0F, 0.0F, 17.0F, 23.0F, 0.0F, false);
|
||||||
|
boiler.texOffs(46, 51).addBox(5.0F, -23.0F, -31.0F, 0.0F, 17.0F, 23.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r9 = new ModelRenderer(this);
|
||||||
|
cube_r9.setPos(-5.0F, -18.0F, -19.5F);
|
||||||
|
boiler.addChild(cube_r9);
|
||||||
|
setRotationAngle(cube_r9, 0.0F, 0.0F, -0.3927F);
|
||||||
|
cube_r9.texOffs(188, 216).addBox(0.0F, -5.0F, -11.5F, 0.0F, 17.0F, 23.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r10 = new ModelRenderer(this);
|
||||||
|
cube_r10.setPos(5.0F, -18.0F, -19.5F);
|
||||||
|
boiler.addChild(cube_r10);
|
||||||
|
setRotationAngle(cube_r10, 0.0F, 0.0F, 0.3927F);
|
||||||
|
cube_r10.texOffs(188, 216).addBox(0.0F, -5.0F, -11.5F, 0.0F, 17.0F, 23.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r11 = new ModelRenderer(this);
|
||||||
|
cube_r11.setPos(0.0F, -16.0F, 0.0F);
|
||||||
|
boiler.addChild(cube_r11);
|
||||||
|
setRotationAngle(cube_r11, -0.0435F, 0.0038F, 0.0872F);
|
||||||
|
cube_r11.texOffs(0, 73).addBox(5.0F, -11.0F, -9.0F, 0.0F, 21.0F, 18.0F, 0.0F, false);
|
||||||
|
cube_r11.texOffs(36, 73).addBox(-5.0F, -11.0F, -9.0F, 0.0F, 21.0F, 18.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r12 = new ModelRenderer(this);
|
||||||
|
cube_r12.setPos(0.0F, -10.5F, -4.75F);
|
||||||
|
boiler.addChild(cube_r12);
|
||||||
|
setRotationAngle(cube_r12, 3.1416F, 0.0F, 0.0F);
|
||||||
|
cube_r12.texOffs(126, 6).addBox(-4.0F, -4.5F, 0.0F, 8.0F, 9.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r13 = new ModelRenderer(this);
|
||||||
|
cube_r13.setPos(0.25F, -15.7145F, -31.75F);
|
||||||
|
boiler.addChild(cube_r13);
|
||||||
|
setRotationAngle(cube_r13, 0.0F, -0.1309F, 0.7854F);
|
||||||
|
cube_r13.texOffs(226, 0).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 13.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r14 = new ModelRenderer(this);
|
||||||
|
cube_r14.setPos(-1.75F, -14.7145F, -33.75F);
|
||||||
|
boiler.addChild(cube_r14);
|
||||||
|
setRotationAngle(cube_r14, 0.0F, 0.1309F, 0.7854F);
|
||||||
|
cube_r14.texOffs(226, 0).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 13.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r15 = new ModelRenderer(this);
|
||||||
|
cube_r15.setPos(1.25F, -12.7145F, -33.75F);
|
||||||
|
boiler.addChild(cube_r15);
|
||||||
|
setRotationAngle(cube_r15, 0.0F, -0.1745F, 0.7854F);
|
||||||
|
cube_r15.texOffs(226, 0).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 13.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r16 = new ModelRenderer(this);
|
||||||
|
cube_r16.setPos(0.0F, -12.0F, -18.5F);
|
||||||
|
boiler.addChild(cube_r16);
|
||||||
|
setRotationAngle(cube_r16, 0.0F, 0.0F, 0.7854F);
|
||||||
|
cube_r16.texOffs(0, 0).addBox(-6.0F, -6.0F, -12.5F, 9.0F, 9.0F, 26.0F, 0.0F, false);
|
||||||
|
|
||||||
|
buffer2 = new ModelRenderer(this);
|
||||||
|
buffer2.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(buffer2);
|
||||||
|
buffer2.texOffs(70, 7).addBox(-5.0F, -5.1F, -36.0F, 2.0F, 2.0F, 3.0F, 0.0F, false);
|
||||||
|
buffer2.texOffs(72, 0).addBox(-6.0F, -6.1F, -37.0F, 4.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
buffer = new ModelRenderer(this);
|
||||||
|
buffer.setPos(4.0F, -3.1F, -36.5F);
|
||||||
|
train.addChild(buffer);
|
||||||
|
setRotationAngle(buffer, 0.3054F, 0.0F, 0.0F);
|
||||||
|
buffer.texOffs(21, 138).addBox(-1.0F, -1.0F, -0.5F, 2.0F, 2.0F, 3.0F, 0.0F, false);
|
||||||
|
buffer.texOffs(11, 138).addBox(-2.0F, -2.0F, -1.5F, 4.0F, 4.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
lamp = new ModelRenderer(this);
|
||||||
|
lamp.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(lamp);
|
||||||
|
lamp.texOffs(0, 138).addBox(-1.5F, -23.1F, -33.0F, 3.0F, 3.0F, 5.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(96, 29).addBox(-1.5F, -23.1F, -35.0F, 3.0F, 3.0F, 2.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(9, 0).addBox(-2.5F, -20.0F, -34.0F, 5.0F, 0.0F, 6.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(12, 17).addBox(-1.2F, -20.0F, -34.0F, 0.0F, 2.0F, 6.0F, 0.0F, false);
|
||||||
|
lamp.texOffs(12, 17).addBox(1.2F, -20.0F, -34.0F, 0.0F, 2.0F, 6.0F, 0.0F, true);
|
||||||
|
|
||||||
|
chasis = new ModelRenderer(this);
|
||||||
|
chasis.setPos(0.0F, 0.0F, -2.0F);
|
||||||
|
train.addChild(chasis);
|
||||||
|
chasis.texOffs(65, 0).addBox(-7.0F, -9.1F, -24.0F, 14.0F, 0.0F, 17.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(39, 0).addBox(-7.0F, -7.85F, -28.0F, 14.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(105, 33).addBox(-7.0F, -6.1F, -33.0F, 14.0F, 5.0F, 1.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(39, 5).addBox(-7.0F, -6.1F, -32.0F, 14.0F, 0.0F, 5.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(47, 12).addBox(-3.0F, -6.0F, -31.0F, 6.0F, 5.0F, 23.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(44, 10).addBox(-2.0F, -10.0F, -14.0F, 4.0F, 5.0F, 6.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(0, 0).addBox(-2.0F, -10.0F, -27.0F, 4.0F, 5.0F, 7.0F, 0.0F, false);
|
||||||
|
chasis.texOffs(16, 8).addBox(0.0F, -6.1F, -37.0F, 0.0F, 5.0F, 4.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r17 = new ModelRenderer(this);
|
||||||
|
cube_r17.setPos(0.0F, -16.0F, 0.0F);
|
||||||
|
chasis.addChild(cube_r17);
|
||||||
|
setRotationAngle(cube_r17, -0.0435F, 0.0038F, 0.0872F);
|
||||||
|
cube_r17.texOffs(70, 17).addBox(-10.0F, 15.0F, -6.0F, 20.0F, 0.0F, 12.0F, 0.0F, false);
|
||||||
|
cube_r17.texOffs(76, 40).addBox(-10.0F, 12.0F, -6.0F, 20.0F, 0.0F, 12.0F, 0.0F, false);
|
||||||
|
cube_r17.texOffs(108, 15).addBox(-4.0F, 10.0F, -8.0F, 8.0F, 4.0F, 14.0F, 0.0F, false);
|
||||||
|
|
||||||
|
drivingwheelfront3 = new ModelRenderer(this);
|
||||||
|
drivingwheelfront3.setPos(0.0F, -2.5F, -22.5F);
|
||||||
|
train.addChild(drivingwheelfront3);
|
||||||
|
setRotationAngle(drivingwheelfront3, 0.0F, 0.0436F, 0.0F);
|
||||||
|
drivingwheelfront3.texOffs(121, 2).addBox(-4.5F, -0.5F, -0.5F, 9.0F, 1.0F, 1.0F, 0.0F, false);
|
||||||
|
drivingwheelfront3.texOffs(123, 45).addBox(-5.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, false);
|
||||||
|
drivingwheelfront3.texOffs(123, 45).addBox(4.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, true);
|
||||||
|
|
||||||
|
drivingwheelfront2 = new ModelRenderer(this);
|
||||||
|
drivingwheelfront2.setPos(0.0F, -2.5F, -14.0F);
|
||||||
|
train.addChild(drivingwheelfront2);
|
||||||
|
setRotationAngle(drivingwheelfront2, 0.0F, -0.0873F, 0.0873F);
|
||||||
|
drivingwheelfront2.texOffs(125, 61).addBox(-4.5F, -0.5F, -0.5F, 9.0F, 1.0F, 1.0F, 0.0F, false);
|
||||||
|
drivingwheelfront2.texOffs(123, 45).addBox(-5.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, false);
|
||||||
|
drivingwheelfront2.texOffs(123, 45).addBox(4.0F, -3.5F, -3.5F, 1.0F, 7.0F, 7.0F, 0.0F, true);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void setupAnim(VehicleBaseEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){
|
||||||
|
//previously the render function, render code was moved to a method below
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
|
||||||
|
train.render(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.xRot = x;
|
||||||
|
modelRenderer.yRot = y;
|
||||||
|
modelRenderer.zRot = z;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package net.halbear.steampowered.trains.rendering.renderers;
|
||||||
|
|
||||||
|
import net.halbear.hvf.Entity.Renderer.VehicleBaseRenderer;
|
||||||
|
import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models.AeroplaneModel;
|
||||||
|
import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models.DamagedPlane;
|
||||||
|
import net.halbear.steampowered.HalsSteampowered;
|
||||||
|
import net.halbear.steampowered.trains.rendering.models.USA040_MCP;
|
||||||
|
import net.halbear.steampowered.trains.rendering.models.USA040_MCP_DAMAGED;
|
||||||
|
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||||
|
import net.minecraft.client.renderer.entity.model.EntityModel;
|
||||||
|
|
||||||
|
public class SteamLocomotiveRenderer extends VehicleBaseRenderer {
|
||||||
|
|
||||||
|
public SteamLocomotiveRenderer(EntityRendererManager renderManagerIn) {
|
||||||
|
super(renderManagerIn, new EntityModel<?>[]{new USA040_MCP()}, "textures/entities/usa040.png", HalsSteampowered.MODID);
|
||||||
|
AddRendererState("DAMAGED", new EntityModel<?>[]{new USA040_MCP_DAMAGED()}, "textures/entities/usa040_damaged.png");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -46,3 +46,10 @@ mandatory=true
|
|||||||
versionRange="1.16.5"
|
versionRange="1.16.5"
|
||||||
ordering="NONE"
|
ordering="NONE"
|
||||||
side="BOTH"
|
side="BOTH"
|
||||||
|
|
||||||
|
[[dependencies."hals_steampowered"]]
|
||||||
|
modId = "hals_vehicle_framework"
|
||||||
|
mandatory = true
|
||||||
|
versionRange = "1.16.5"
|
||||||
|
ordering = "NONE"
|
||||||
|
side = "BOTH"
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 8.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"required": true,
|
|
||||||
"package": "net.halbear.steampowered.registry.utility.mixin",
|
|
||||||
"compatibilityLevel": "JAVA_8",
|
|
||||||
"client": [
|
|
||||||
"CameraMixin"
|
|
||||||
],
|
|
||||||
"injectors": {
|
|
||||||
"defaultRequire": 1
|
|
||||||
},
|
|
||||||
"refmap": "hals_steampowered.mixin-refmap.json"
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user