Fixed monolith spawning and monolith model
Changes to be committed: modified: src/main/java/org/dimdev/dimdoors/DimensionalDoorsClientInitializer.java modified: src/main/java/org/dimdev/dimdoors/client/CustomSkyProvider.java modified: src/main/java/org/dimdev/dimdoors/client/MonolithModel.java modified: src/main/java/org/dimdev/dimdoors/entity/ModEntityTypes.java modified: src/main/java/org/dimdev/dimdoors/entity/MonolithEntity.java modified: src/main/java/org/dimdev/dimdoors/world/limbo/LimboDecay.java modified: src/main/resources/data/minecraft/dimension/dimdoors/limbo.json modified: src/main/resources/dimdoors.mixins.json
This commit is contained in:
parent
1a98f92a76
commit
1a00008cd3
8 changed files with 31 additions and 33 deletions
|
@ -14,7 +14,6 @@ import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.SkyProperties;
|
||||
import net.minecraft.client.texture.Sprite;
|
||||
import net.minecraft.client.texture.SpriteAtlasTexture;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
|
@ -23,7 +22,6 @@ import net.minecraft.resource.ResourceManager;
|
|||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.BlockRenderView;
|
||||
|
|
|
@ -3,16 +3,17 @@ package org.dimdev.dimdoors.client;
|
|||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import io.github.waterpicker.openworlds.renderer.SkyRenderer;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.util.math.Vector3f;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.Matrix4f;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class CustomSkyProvider implements SkyRenderer {
|
||||
private final Identifier moon;
|
||||
private final Identifier sun;
|
||||
|
|
|
@ -18,7 +18,7 @@ public class MonolithModel extends EntityModel<MonolithEntity> {
|
|||
|
||||
body = new ModelPart(this);
|
||||
body.setPivot(0.0F, 24.0F, 0.0F);
|
||||
body.setTextureOffset(0, 0).addCuboid(-24.0F, -54.0F, -6.0F, 48.0F, 108.0F, 12.0F, 0.0F, false);
|
||||
body.setTextureOffset(0, 0).addCuboid(-24.0F, -108.0F, -6.0F, 48.0F, 108.0F, 12.0F, 0.0F, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -37,6 +37,6 @@ public class ModEntityTypes {
|
|||
}
|
||||
|
||||
private static <E extends Entity> EntityType<E> register(String id, EntityType.EntityFactory<E> factory, int width, int height) {
|
||||
return Registry.register(Registry.ENTITY_TYPE, id, FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, factory).dimensions(EntityDimensions.fixed(width, height)).fireImmune().build());
|
||||
return Registry.register(Registry.ENTITY_TYPE, id, FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, factory).dimensions(EntityDimensions.fixed(width, height)).spawnableFarFromPlayer().fireImmune().build());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,8 @@ import net.minecraft.util.math.Box;
|
|||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
|
||||
import org.dimdev.dimdoors.entity.ai.MonolithTask;
|
||||
import org.dimdev.dimdoors.sound.ModSoundEvents;
|
||||
import org.dimdev.dimdoors.world.ModDimensions;
|
||||
|
@ -28,7 +30,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.fabricmc.fabric.api.network.PacketContext;
|
||||
|
||||
public class MonolithEntity extends MobEntity {
|
||||
public final EntityDimensions DIMENSIONS = EntityDimensions.fixed(3f, 3f);
|
||||
public final EntityDimensions DIMENSIONS = EntityDimensions.fixed(3f, 6f);
|
||||
|
||||
public static final int MAX_AGGRO = 250;
|
||||
private static final int MAX_AGGRO_CAP = 100;
|
||||
|
@ -45,12 +47,16 @@ public class MonolithEntity extends MobEntity {
|
|||
private int soundTime = 0;
|
||||
private final int aggroCap;
|
||||
|
||||
MonolithEntity(World world){
|
||||
this(ModEntityTypes.MONOLITH, world);
|
||||
}
|
||||
|
||||
public MonolithEntity(EntityType<? extends MonolithEntity> type, World world) {
|
||||
super(ModEntityTypes.MONOLITH, world);
|
||||
random = this.getRandom();
|
||||
noClip = true;
|
||||
aggroCap = MathHelper.nextInt(getRandom(), MIN_AGGRO_CAP, MAX_AGGRO_CAP);
|
||||
setNoGravity(true);
|
||||
this.setNoGravity(true);
|
||||
lookControl = new LookControl(this) {
|
||||
@Override
|
||||
protected boolean shouldStayHorizontal() {
|
||||
|
@ -65,7 +71,6 @@ public class MonolithEntity extends MobEntity {
|
|||
return DIMENSIONS;
|
||||
}
|
||||
|
||||
|
||||
public boolean isDangerous() {
|
||||
return true; //return ModConfig.MONOLITHS.monolithTeleportation && (world.dimension instanceof LimboDimension || ModConfig.MONOLITHS.dangerousLimboMonoliths);
|
||||
}
|
||||
|
@ -78,16 +83,6 @@ public class MonolithEntity extends MobEntity {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LookControl getLookControl() {
|
||||
return super.getLookControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxAir() {
|
||||
return super.getMaxAir();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getNextAirUnderwater(int i) {
|
||||
return 10;
|
||||
|
@ -110,7 +105,7 @@ public class MonolithEntity extends MobEntity {
|
|||
|
||||
@Override
|
||||
public boolean cannotDespawn() {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -118,11 +113,6 @@ public class MonolithEntity extends MobEntity {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEyeY() {
|
||||
return super.getEyeY();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initDataTracker() {
|
||||
super.initDataTracker();
|
||||
|
@ -143,7 +133,7 @@ public class MonolithEntity extends MobEntity {
|
|||
protected void mobTick() {
|
||||
// Remove this Monolith if it's not in Limbo or in a pocket dungeon
|
||||
if (!(ModDimensions.isLimboDimension(world) || ModDimensions.isDimDoorsPocketDimension(world))) {
|
||||
remove();
|
||||
this.remove();
|
||||
super.mobTick();
|
||||
return;
|
||||
}
|
||||
|
@ -151,8 +141,6 @@ public class MonolithEntity extends MobEntity {
|
|||
super.mobTick();
|
||||
|
||||
// Check for players and update aggro levels even if there are no players in range
|
||||
/*
|
||||
}*/
|
||||
}
|
||||
|
||||
public void updateAggroLevel(PlayerEntity player, boolean visibility) {
|
||||
|
@ -276,4 +264,15 @@ public class MonolithEntity extends MobEntity {
|
|||
public void setAggro(int aggro) {
|
||||
dataTracker.set(AGGRO, aggro);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSpawn(WorldAccess world, SpawnReason spawnReason) {
|
||||
if(spawnReason == SpawnReason.CHUNK_GENERATION) {
|
||||
return super.canSpawn(world, spawnReason);
|
||||
}
|
||||
if(spawnReason == SpawnReason.NATURAL) {
|
||||
return this.getRandom().nextInt(32) == 2;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraft.block.BlockState;
|
|||
import net.minecraft.block.BlockWithEntity;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.resource.Resource;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
"bedrock_floor_position": 0,
|
||||
"bedrock_roof_position": -1,
|
||||
"disable_mob_generation": false,
|
||||
"sea_level": 0,
|
||||
"sea_level": 32,
|
||||
"structures": {
|
||||
"structures": {}
|
||||
},
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
"mixins": [
|
||||
],
|
||||
"client": [
|
||||
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
|
Loading…
Reference in a new issue