Compare commits

...

2 Commits

Author SHA1 Message Date
Halbear 642a74e798 Merge remote-tracking branch 'origin/main' 2026-05-17 00:47:17 +01:00
Halbear 28816a0385 Added the start of the space ship entity 2026-05-17 00:47:05 +01:00
47 changed files with 1600 additions and 178 deletions
+20 -8
View File
@@ -2,25 +2,32 @@ buildscript {
repositories {
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://maven.parchmentmc.org' }
maven { url = 'https://repo.spongepowered.org/maven' }
mavenCentral()
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
classpath 'org.parchmentmc:librarian:1.+'
classpath 'org.spongepowered:mixingradle:0.7.+'
}
}
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'org.parchmentmc.librarian.forgegradle'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
version = '1.16.5-0.1'
group = 'dev.halbear1.supernova' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
group = 'net.halbear.supernova' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'supernova'
java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8.
mixin {
add sourceSets.main, "supernova.mixin-refmap.json"
}
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
minecraft {
@@ -29,7 +36,11 @@ minecraft {
runs {
client {
workingDirectory project.file('run')
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
arg "-mixin.config=supernova.mixin.json"
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
@@ -85,13 +96,14 @@ dependencies {
jar {
manifest {
attributes([
"Specification-Title": "supernova",
"Specification-Vendor": "supernovasareus",
"Specification-Version": "1", // We are version 1 of ourselves
"Implementation-Title": project.name,
"Implementation-Version": "${version}",
"Implementation-Vendor" :"supernovasareus",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
"Specification-Title" : "supernova",
"Specification-Vendor" : "halbear",
"Specification-Version" : "1",
"Implementation-Title" : project.name,
"Implementation-Version" : "${version}",
"Implementation-Vendor" : "halbear",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
"MixinConfigs" : "supernova.mixin.json"
])
}
}
@@ -1,4 +0,0 @@
package dev.halbear1.supernova.custom.fluid;
public class SupernovaOverlayRenderer {
}
@@ -1,12 +0,0 @@
package dev.halbear1.supernova.data;
import dev.halbear1.supernova.SuperNova;
import net.minecraft.data.DataGenerator;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.GatherDataEvent;
@Mod.EventBusSubscriber(modid = SuperNova.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class DataGenerators {
}
@@ -1,4 +0,0 @@
package dev.halbear1.supernova.registry;
public class ModEntities {
}
@@ -1,4 +0,0 @@
package dev.halbear1.supernova.registry.worldgen;
public class ModFeatures {
}
@@ -1,4 +0,0 @@
package dev.halbear1.supernova.world.gen.ores;
public class OreInCave {
}
@@ -1,20 +1,16 @@
package dev.halbear1.supernova;
package net.halbear.supernova;
import dev.halbear1.supernova.registry.ModParticles;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import dev.halbear1.supernova.registry.blocks.ModFluids;
import dev.halbear1.supernova.registry.items.ModItems;
import dev.halbear1.supernova.registry.util.ModSoundEvents;
import dev.halbear1.supernova.registry.worldgen.ModBiomes;
import dev.halbear1.supernova.registry.worldgen.ModConfiguredFeatures;
import net.halbear.supernova.registry.ModEntities;
import net.halbear.supernova.registry.ModParticles;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.registry.blocks.ModFluids;
import net.halbear.supernova.registry.items.ModItems;
import net.halbear.supernova.registry.util.ModSoundEvents;
import net.halbear.supernova.registry.worldgen.ModBiomes;
import net.halbear.supernova.registry.worldgen.ModConfiguredFeatures;
import net.minecraft.block.Block;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.RegistryKey;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
@@ -39,10 +35,14 @@ public class SuperNova // to chef, peaceful and pal, no touchy
// Directly reference a log4j logger.
private static final Logger LOGGER = LogManager.getLogger();
public static float DegToRad = (float)Math.PI/180.0F;
public static float RadToDeg = 180.0F/(float)Math.PI;
public SuperNova() { //hal
//creates a mod event bus
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
//register the mod elements on the mod event bus (loads them)
ModEntities.ENTITY_TYPES.register(bus);
ModBlocks.BLOCKS.register(bus);
ModItems.ITEMS.register(bus);
ModFluids.FLUIDS.register(bus);
@@ -1,4 +1,4 @@
package dev.halbear1.supernova.custom.block;
package net.halbear.supernova.custom.block;
import net.minecraft.block.*;
import net.minecraft.item.BlockItemUseContext;
@@ -1,8 +1,8 @@
package dev.halbear1.supernova.custom.block;
package net.halbear.supernova.custom.block;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import dev.halbear1.supernova.registry.worldgen.ModDimensions;
import dev.halbear1.supernova.world.dimension.DebugTeleporter;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.registry.worldgen.ModDimensions;
import net.halbear.supernova.world.dimension.DebugTeleporter;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.entity.player.PlayerEntity;
@@ -1,4 +1,4 @@
package dev.halbear1.supernova.custom.block;
package net.halbear.supernova.custom.block;
import net.minecraft.block.*;
import net.minecraft.item.BlockItemUseContext;
@@ -1,14 +1,14 @@
package dev.halbear1.supernova.custom.block;
package net.halbear.supernova.custom.block;
import dev.halbear1.supernova.custom.block.blockstate_stuff.SupernovaBlockstates;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.custom.block.blockstate_stuff.SupernovaBlockstates;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.state.BooleanProperty;
import net.minecraft.state.DirectionProperty;
import net.minecraft.state.EnumProperty;
import dev.halbear1.supernova.custom.block.blockstate_stuff.enums.PipeContents;
import net.halbear.supernova.custom.block.blockstate_stuff.enums.PipeContents;
import net.minecraft.state.StateContainer;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.custom.block.blockstate_stuff;
package net.halbear.supernova.custom.block.blockstate_stuff;
import dev.halbear1.supernova.custom.block.blockstate_stuff.enums.PipeContents;
import net.halbear.supernova.custom.block.blockstate_stuff.enums.PipeContents;
import net.minecraft.state.EnumProperty;
public class SupernovaBlockstates {
@@ -1,4 +1,4 @@
package dev.halbear1.supernova.custom.block.blockstate_stuff.enums;
package net.halbear.supernova.custom.block.blockstate_stuff.enums;
import net.minecraft.util.IStringSerializable;
@@ -1,7 +1,6 @@
package dev.halbear1.supernova.custom.fluid;
package net.halbear.supernova.custom.fluid;
import net.minecraft.block.FlowingFluidBlock;
import net.minecraft.fluid.FlowingFluid;
import java.util.function.Supplier;
@@ -1,4 +1,4 @@
package dev.halbear1.supernova.custom.fluid;
package net.halbear.supernova.custom.fluid;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
@@ -18,7 +18,6 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.IWorldReader;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.ForgeFlowingFluid;
import javax.annotation.Nullable;
import java.util.function.Supplier;
@@ -1,12 +1,7 @@
package dev.halbear1.supernova.custom.fluid;
package net.halbear.supernova.custom.fluid;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import jdk.nashorn.internal.ir.Block;
import net.minecraft.fluid.Fluid;
import net.minecraft.item.Rarity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.fluids.FluidAttributes;
import java.util.function.BiFunction;
@@ -0,0 +1,4 @@
package net.halbear.supernova.custom.fluid;
public class SupernovaOverlayRenderer {
}
@@ -0,0 +1,9 @@
package net.halbear.supernova.data;
import net.halbear.supernova.SuperNova;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = SuperNova.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class DataGenerators {
}
@@ -0,0 +1,124 @@
package net.halbear.supernova.entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.IPacket;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Hand;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;
import net.minecraftforge.fml.network.NetworkHooks;
import javax.annotation.Nonnull;
public class Spaceship extends Entity {
private static final DataParameter<Float> ORIENTATION_ROLL = EntityDataManager.createKey(Spaceship.class, DataSerializers.FLOAT);
private static final DataParameter<Float> ORIENTATION_YAW = EntityDataManager.createKey(Spaceship.class, DataSerializers.FLOAT);
private static final DataParameter<Float> ORIENTATION_PITCH = EntityDataManager.createKey(Spaceship.class, DataSerializers.FLOAT);
private static final Vector3d[] VehicleSeatOffsets = new Vector3d[]{
new Vector3d(0.0D, 3D, 0.0D),
new Vector3d(0.0D, 1.5D, 0.0D),
};
public Spaceship(EntityType<? extends Spaceship> type, World worldIn) {
super(type, worldIn);
}
public void SetVehicleRoll(float value){
this.dataManager.set(ORIENTATION_ROLL, value);
}
public void SetVehicleYaw(float value){
this.dataManager.set(ORIENTATION_YAW, value);
}
public void SetVehiclePitch(float value){
this.dataManager.set(ORIENTATION_PITCH, value);
}
public float GetVehicleRoll(){
return this.dataManager.get(ORIENTATION_ROLL);
}
public float GetVehicleYaw(){
return this.dataManager.get(ORIENTATION_YAW);
}
public float GetVehiclePitch(){
return this.dataManager.get(ORIENTATION_PITCH);
}
public float[] GetVehicleRotations(){
return new float[]{GetVehicleYaw(),GetVehiclePitch(),GetVehicleRoll()};
}
public void SetVehicleRotations(float Yaw, float Pitch, float Roll){
SetVehicleRoll(Roll);
SetVehicleYaw(Yaw);
SetVehiclePitch(Pitch);
}
@Override
public boolean canBeCollidedWith(){return true;}
@Override
protected boolean canFitPassenger(Entity passenger) {
return this.getPassengers().size() < VehicleSeatOffsets.length;
}
@Override
public ActionResultType processInitialInteract(PlayerEntity player, Hand hand) {
if (this.getPassengers().size() < VehicleSeatOffsets.length && !player.isPassenger()) {
if (!this.world.isRemote()) {
return player.startRiding(this) ? ActionResultType.CONSUME : ActionResultType.PASS;
}
return ActionResultType.func_233537_a_(this.world.isRemote());
}
return ActionResultType.SUCCESS;
}
@Override
public Entity getControllingPassenger() {
return this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
}
@Override
public void updatePassenger(Entity passenger) {
if (this.isPassenger(passenger)) {
int seatIndex = this.getPassengers().indexOf(passenger);
if (seatIndex >= 0 && seatIndex < VehicleSeatOffsets.length) {
Vector3d localOffset = VehicleSeatOffsets[seatIndex];
Vector3d rotatedOffset = localOffset.rotateYaw((float) Math.toRadians(-this.rotationYaw));
passenger.setPosition(
this.getPosX() + rotatedOffset.x,
this.getPosY() + rotatedOffset.y + passenger.getMountedYOffset(),
this.getPosZ() + rotatedOffset.z
);
} else {
super.updatePassenger(passenger);
}
}
}
@Override
protected void registerData() {
this.dataManager.register(ORIENTATION_ROLL, 0F);
this.dataManager.register(ORIENTATION_PITCH, 0F);
this.dataManager.register(ORIENTATION_YAW, 0F);
}
@Override
protected void readAdditional(CompoundNBT compoundNBT) {
}
@Override
protected void writeAdditional(CompoundNBT compoundNBT) {
}
@Override
@Nonnull
public IPacket<?> createSpawnPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
}
@@ -1,4 +1,4 @@
package dev.halbear1.supernova.loot_modifiers;
package net.halbear.supernova.loot_modifiers;
import com.google.gson.JsonObject;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -0,0 +1,31 @@
package net.halbear.supernova.mixin;
import net.halbear.supernova.SuperNova;
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.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;
import static net.halbear.supernova.vehicle.VehicleCameraSetup.GetCameraOffsets;
@Mixin(ActiveRenderInfo.class)
public abstract class CameraMixin {
@Inject(method = {"update", "func_216772_a"}, at = @At(value = "TAIL"),cancellable = true, remap = true)
private void update(IBlockReader currentRenderedLevel, Entity entity, boolean isDetached, boolean isMirrored, float partialTicks, CallbackInfo ci){
if(entity.isPassenger() && Minecraft.getInstance().gameSettings.getPointOfView() != PointOfView.FIRST_PERSON && entity.getRidingEntity().getType().getRegistryName().getNamespace().equals(SuperNova.MOD_ID)){
Vector3f Position = GetCameraOffsets();
this.movePosition(-this.calcCameraDistance(Position.getZ()), Position.getY(), Position.getX());
}
}
@Shadow(aliases = {"move", "func_216782_a"})
protected abstract void movePosition(double p_216782_1_, double p_216782_3_, double p_216782_5_);
@Shadow(aliases = {"getMaxZoom", "func_216779_a"}) protected abstract double calcCameraDistance(double p_216779_1_);
}
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry;
package net.halbear.supernova.registry;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.IArmorMaterial;
import net.minecraft.item.crafting.Ingredient;
@@ -0,0 +1,18 @@
package net.halbear.supernova.registry;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.entity.Spaceship;
import net.minecraft.entity.EntityClassification;
import net.minecraft.entity.EntityType;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
public class ModEntities {
public static DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, SuperNova.MOD_ID);
public static final RegistryObject<EntityType<Spaceship>> SPACESHIP =
ENTITY_TYPES.register("spaceship", ()-> EntityType.Builder.create(Spaceship::new,
EntityClassification.MISC ).size(3f,8f).build(new ResourceLocation(SuperNova.MOD_ID, "spaceship").toString()));
}
@@ -1,28 +1,13 @@
package dev.halbear1.supernova.registry;
package net.halbear.supernova.registry;
import dev.halbear1.supernova.*;
import dev.halbear1.supernova.loot_modifiers.ModReplaceLootDrop;
import dev.halbear1.supernova.registry.worldgen.ModDimensions;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.RegistryKey;
import net.halbear.supernova.*;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.loot_modifiers.ModReplaceLootDrop;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Util;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.text.ChatType;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.common.loot.GlobalLootModifierSerializer;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.server.ServerLifecycleHooks;
import javax.annotation.Nonnull;
@@ -1,9 +1,7 @@
package dev.halbear1.supernova.registry;
package net.halbear.supernova.registry;
import dev.halbear1.supernova.SuperNova;
import net.minecraft.particles.BasicParticleType;
import net.halbear.supernova.SuperNova;
import net.minecraft.particles.ParticleType;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
@@ -1,12 +1,12 @@
package dev.halbear1.supernova.registry.blocks;
package net.halbear.supernova.registry.blocks;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import dev.halbear1.supernova.custom.block.ArcFurnace;
import dev.halbear1.supernova.custom.block.DebugPortalBlock;
import dev.halbear1.supernova.custom.block.StraightSteelPipe;
import dev.halbear1.supernova.registry.items.ModItems;
import dev.halbear1.supernova.registry.items.ItemGroups;
import net.halbear.supernova.custom.block.ArcFurnace;
import net.halbear.supernova.custom.block.DebugPortalBlock;
import net.halbear.supernova.custom.block.StraightSteelPipe;
import net.halbear.supernova.registry.items.ModItems;
import net.halbear.supernova.registry.items.ItemGroups;
import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.item.BlockItem;
@@ -1,10 +1,10 @@
package dev.halbear1.supernova.registry.blocks;
package net.halbear.supernova.registry.blocks;
import dev.halbear1.supernova.SuperNova;
import dev.halbear1.supernova.custom.fluid.FlammableFluid;
import dev.halbear1.supernova.custom.fluid.SupernovaFlowingFluid;
import dev.halbear1.supernova.custom.fluid.SupernovaFluidAttributes;
import dev.halbear1.supernova.registry.items.ModItems;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.custom.fluid.FlammableFluid;
import net.halbear.supernova.custom.fluid.SupernovaFlowingFluid;
import net.halbear.supernova.custom.fluid.SupernovaFluidAttributes;
import net.halbear.supernova.registry.items.ModItems;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.FlowingFluidBlock;
import net.minecraft.block.material.Material;
@@ -12,7 +12,6 @@ import net.minecraft.fluid.FlowingFluid;
import net.minecraft.fluid.Fluid;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvents;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.ForgeFlowingFluid;
import net.minecraftforge.fml.RegistryObject;
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry.items;
package net.halbear.supernova.registry.items;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
@@ -1,15 +1,14 @@
package dev.halbear1.supernova.registry.items;
package net.halbear.supernova.registry.items;
import dev.halbear1.supernova.SuperNova;
import dev.halbear1.supernova.registry.blocks.ModFluids;
import dev.halbear1.supernova.registry.util.ModSoundEvents;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.registry.blocks.ModFluids;
import net.halbear.supernova.registry.util.ModSoundEvents;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.*;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraft.world.World;
import net.minecraftforge.common.ToolType;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
@@ -1,48 +1,26 @@
package dev.halbear1.supernova.registry.util;
package net.halbear.supernova.registry.util;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
//import dev.halbear1.supernova.custom.particle.StarSparkle;
import dev.halbear1.supernova.registry.ModParticles;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import dev.halbear1.supernova.registry.blocks.ModFluids;
import dev.halbear1.supernova.registry.worldgen.ModBiomes;
import dev.halbear1.supernova.registry.worldgen.ModDimensions;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.IParticleFactory;
import net.halbear.supernova.entity.EntityRenderers.SpaceshipRenderer;
import net.halbear.supernova.entity.Spaceship;
import net.halbear.supernova.registry.ModEntities;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.registry.blocks.ModFluids;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.RenderTypeLookup;
import net.minecraft.client.world.DimensionRenderInfo;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.fluid.FluidState;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.RegistryKey;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Util;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.text.ChatType;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.world.Dimension;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityViewRenderEvent;
import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraft.block.Block;
import net.minecraftforge.fml.server.ServerLifecycleHooks;
import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Stream;
@Mod.EventBusSubscriber(modid = SuperNova.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class ClientEventHandler {
@@ -75,6 +53,7 @@ public class ClientEventHandler {
RenderTypeLookup.setRenderLayer(ModFluids.KEROSENE_FLOWING.get(), RenderType.getTranslucent());
RenderTypeLookup.setRenderLayer(ModFluids.KEROSENE_BLOCK.get(), RenderType.getTranslucent());
RenderingRegistry.registerEntityRenderingHandler(ModEntities.SPACESHIP.get(), SpaceshipRenderer::new);
/*SetCollectionRenderType(RenderType.getCutoutMipped(), // Cutout Mipped: Cutout but with mipmapping. Textures from far away are simplified for performance.
//blocks here
);
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry.util;
package net.halbear.supernova.registry.util;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.fml.RegistryObject;
@@ -1,7 +1,7 @@
package dev.halbear1.supernova.registry.util;
import dev.halbear1.supernova.SuperNova;
package net.halbear.supernova.registry.util;
import net.halbear.supernova.SuperNova;
import dev.halbear1.supernova.registry.blocks.ModFluids;
import net.halbear.supernova.registry.blocks.ModFluids;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry.worldgen;
package net.halbear.supernova.registry.worldgen;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import net.minecraft.util.RegistryKey;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
@@ -1,7 +1,7 @@
package dev.halbear1.supernova.registry.worldgen;
package net.halbear.supernova.registry.worldgen;
import dev.halbear1.supernova.SuperNova;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.WorldGenRegistries;
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry.worldgen;
package net.halbear.supernova.registry.worldgen;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.RegistryKey;
@@ -11,7 +11,6 @@ import net.minecraft.util.text.ChatType;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.server.ServerLifecycleHooks;
@@ -0,0 +1,4 @@
package net.halbear.supernova.registry.worldgen;
public class ModFeatures {
}
@@ -1,6 +1,6 @@
package dev.halbear1.supernova.registry.worldgen;
package net.halbear.supernova.registry.worldgen;
import dev.halbear1.supernova.SuperNova;
import net.halbear.supernova.SuperNova;
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
@@ -1,10 +1,7 @@
package dev.halbear1.supernova.setup;
import dev.halbear1.supernova.SuperNova;
import dev.halbear1.supernova.registry.worldgen.ModConfiguredFeatures;
import dev.halbear1.supernova.registry.worldgen.ModDimensions;
import net.minecraft.entity.player.PlayerEntity;
package net.halbear.supernova.setup;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.registry.worldgen.ModConfiguredFeatures;
import net.minecraft.world.gen.GenerationStage;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.BiomeLoadingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@@ -0,0 +1,24 @@
package net.halbear.supernova.setup;
import net.halbear.supernova.SuperNova;
import net.halbear.supernova.entity.Spaceship;
import net.halbear.supernova.registry.ModEntities;
import net.halbear.supernova.registry.worldgen.ModConfiguredFeatures;
import net.minecraft.entity.EntityType;
import net.minecraft.world.gen.GenerationStage;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
import net.minecraftforge.event.world.BiomeLoadingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = SuperNova.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModEventHandler {
@SubscribeEvent
public static void addEntityAttributes(EntityAttributeCreationEvent event){
}
@SubscribeEvent
public static void onRegisterEntities(RegistryEvent.Register<EntityType<?>> event){
}
}
@@ -0,0 +1,62 @@
package net.halbear.supernova.vehicle;
import net.halbear.supernova.*;
import net.halbear.supernova.entity.Spaceship;
import net.halbear.supernova.registry.ModEntities;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.vector.Vector3f;
import net.minecraftforge.client.event.EntityViewRenderEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber
public class VehicleCameraSetup {
private static Vector3f CamOffset = new Vector3f(0.0f, 0.0f, 0.0f);
private static Vector3f CamTransformations = new Vector3f(0.0f, 0.0f, 0.0f);
private static float CamFOV = 0.0f;
private static float CamFOVExternal = 0.0f;
private static String CurrentEntity = "";
private static boolean SupernovaVehicle = false;
public static Vector3f GetCameraOffsets(){
return CamOffset;
}
@SubscribeEvent
public static void PlayerTickEvent(TickEvent.PlayerTickEvent event) {
Minecraft minecraftInstance = Minecraft.getInstance();
if (minecraftInstance.player != null && minecraftInstance.player.isPassenger() && minecraftInstance.player.getRidingEntity() != null
&& CurrentEntity != minecraftInstance.player.getRidingEntity().getType().getRegistryName().toString()) {
CurrentEntity = minecraftInstance.player.getRidingEntity().getType().getRegistryName().toString();
SupernovaVehicle = minecraftInstance.player.getRidingEntity().getType().getRegistryName().getNamespace().equals(SuperNova.MOD_ID);
if (CurrentEntity.equals(ModEntities.SPACESHIP.get().getRegistryName().toString())) {
CamOffset = new Vector3f(0.0f, -0.75f, 6.5f);
CamTransformations = new Vector3f(0.0f, 0.0f, 0.0f);
CamFOV = 70.0f;
CamFOVExternal = 60.0f;
}
}
if (minecraftInstance.player != null && (!minecraftInstance.player.isPassenger() || !SupernovaVehicle)
&& (CamFOVExternal != (float) Minecraft.getInstance().gameSettings.fov
|| CamFOV != (float) Minecraft.getInstance().gameSettings.fov || CamOffset.getX() != 0 || CamOffset.getY() != 0
|| CamOffset.getZ() != 0 || CamTransformations.getX() != 0 || CamTransformations.getY() != 0
|| CamTransformations.getZ() != 0)) {
CamOffset = new Vector3f(0.0f, 0.0f, 0.0f);// reset if the players not riding an entity and if any the values aren't 0
CamTransformations = new Vector3f(0.0f, 0.0f, 0.0f);
CamFOV = (float) Minecraft.getInstance().gameSettings.fov;
CamFOVExternal = (float) Minecraft.getInstance().gameSettings.fov;
if (!minecraftInstance.player.isPassenger())
CurrentEntity = "";
}
}
@SubscribeEvent
public static void onCameraSetup(EntityViewRenderEvent.CameraSetup event) {
if (SupernovaVehicle) {
event.setRoll(event.getRoll() + CamTransformations.getX());
event.setYaw(event.getYaw() + CamTransformations.getY());
event.setPitch(event.getPitch() + CamTransformations.getZ());
}
}
}
@@ -1,7 +1,7 @@
package dev.halbear1.supernova.world.dimension;
package net.halbear.supernova.world.dimension;
import dev.halbear1.supernova.custom.block.ArcFurnace;
import dev.halbear1.supernova.registry.blocks.ModBlocks;
import net.halbear.supernova.custom.block.ArcFurnace;
import net.halbear.supernova.registry.blocks.ModBlocks;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.fluid.Fluids;
@@ -0,0 +1,4 @@
package net.halbear.supernova.world.gen.ores;
public class OreInCave {
}
+2 -2
View File
@@ -29,9 +29,9 @@ displayName="SuperNova" #mandatory
# A file name (in the root of the mod JAR) containing a logo for display
logoFile="SuperNova.png" #optional
# A text field displayed in the mod UI
credits="halbear1, Masterchefreal, TechyKnight, Peacefulgamer_, Billz_Game" #optional
credits="halbear1, TechyKnight, Billz_Game" #optional
# A text field displayed in the mod UI
authors="halbear1" #optional
authors="Halbear Networking & Software Ltd" #optional
# The description text for the mod (multi line!) (#mandatory)
description='''
SuperNova Space travel mod developed by Iron Horse Game Development (visit https://iron-horse.games/ to find out more)
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

+12
View File
@@ -0,0 +1,12 @@
{
"required": true,
"package": "net.halbear.supernova.mixin",
"refmap": "supernova.mixin-refmap.json",
"compatibilityLevel": "JAVA_8",
"client": [
"CameraMixin"
],
"injectors": {
"defaultRequire": 1
}
}