Reformated
This commit is contained in:
parent
fc1da134e7
commit
60e8008cb7
416 changed files with 5772 additions and 4573 deletions
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
|
@ -22,31 +26,29 @@ import net.minecraft.world.item.ItemStack;
|
|||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
public class CubozoaEntity extends AbstractSchoolingFish {
|
||||
public static final int VARIANTS = 2;
|
||||
private static final EntityDataAccessor<Byte> VARIANT = SynchedEntityData.defineId(
|
||||
CubozoaEntity.class,
|
||||
EntityDataSerializers.BYTE
|
||||
);
|
||||
);
|
||||
private static final EntityDataAccessor<Byte> SCALE = SynchedEntityData.defineId(
|
||||
CubozoaEntity.class,
|
||||
EntityDataSerializers.BYTE
|
||||
);
|
||||
);
|
||||
|
||||
public CubozoaEntity(EntityType<CubozoaEntity> entityType, Level world) {
|
||||
super(entityType, world);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag) {
|
||||
public SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag
|
||||
) {
|
||||
SpawnGroupData data = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityTag);
|
||||
|
||||
if (BiomeAPI.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) {
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.entity.DespawnableAnimal;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.registry.EndEntities;
|
||||
import org.betterx.betterend.registry.EndSounds;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
|
@ -26,12 +32,6 @@ import net.minecraft.world.level.pathfinder.BlockPathTypes;
|
|||
import net.minecraft.world.level.pathfinder.Path;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import org.betterx.bclib.entity.DespawnableAnimal;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.registry.EndEntities;
|
||||
import org.betterx.betterend.registry.EndSounds;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class DragonflyEntity extends DespawnableAnimal implements FlyingAnimal {
|
||||
|
@ -178,7 +178,7 @@ public class DragonflyEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
MHelper.PI2,
|
||||
3,
|
||||
1
|
||||
);
|
||||
);
|
||||
if (airPos != null && !isInVoid(airPos)) {
|
||||
return airPos;
|
||||
}
|
||||
|
@ -198,7 +198,7 @@ public class DragonflyEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
rotation.x,
|
||||
rotation.z,
|
||||
1.5707963705062866D
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
private boolean isInVoid(Vec3 pos) {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
|
@ -28,10 +32,6 @@ import net.minecraft.world.level.Level;
|
|||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
public class EndFishEntity extends AbstractSchoolingFish {
|
||||
public static final int VARIANTS_NORMAL = 5;
|
||||
public static final int VARIANTS_SULPHUR = 3;
|
||||
|
@ -39,22 +39,24 @@ public class EndFishEntity extends AbstractSchoolingFish {
|
|||
private static final EntityDataAccessor<Byte> VARIANT = SynchedEntityData.defineId(
|
||||
EndFishEntity.class,
|
||||
EntityDataSerializers.BYTE
|
||||
);
|
||||
);
|
||||
private static final EntityDataAccessor<Byte> SCALE = SynchedEntityData.defineId(
|
||||
EndFishEntity.class,
|
||||
EntityDataSerializers.BYTE
|
||||
);
|
||||
);
|
||||
|
||||
public EndFishEntity(EntityType<EndFishEntity> entityType, Level world) {
|
||||
super(entityType, world);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag) {
|
||||
public SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag
|
||||
) {
|
||||
SpawnGroupData data = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityTag);
|
||||
|
||||
if (BiomeAPI.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) {
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.interfaces.ISlime;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.util.GlobalState;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.BlockPos.MutableBlockPos;
|
||||
import net.minecraft.core.particles.ParticleOptions;
|
||||
|
@ -35,22 +44,13 @@ import net.minecraft.world.level.LevelAccessor;
|
|||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.interfaces.ISlime;
|
||||
import org.betterx.betterend.registry.EndBiomes;
|
||||
import org.betterx.betterend.util.GlobalState;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class EndSlimeEntity extends Slime {
|
||||
private static final EntityDataAccessor<Byte> VARIANT = SynchedEntityData.defineId(
|
||||
EndSlimeEntity.class,
|
||||
EntityDataSerializers.BYTE
|
||||
);
|
||||
);
|
||||
|
||||
public EndSlimeEntity(EntityType<EndSlimeEntity> entityType, Level world) {
|
||||
super(entityType, world);
|
||||
|
@ -67,7 +67,7 @@ public class EndSlimeEntity extends Slime {
|
|||
new NearestAttackableTargetGoal<Player>(this, Player.class, 10, true, false, (livingEntity) -> {
|
||||
return Math.abs(livingEntity.getY() - this.getY()) <= 4.0D;
|
||||
})
|
||||
);
|
||||
);
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<IronGolem>(this, IronGolem.class, true));
|
||||
}
|
||||
|
||||
|
@ -81,11 +81,13 @@ public class EndSlimeEntity extends Slime {
|
|||
}
|
||||
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag) {
|
||||
public SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor world,
|
||||
DifficultyInstance difficulty,
|
||||
MobSpawnType spawnReason,
|
||||
SpawnGroupData entityData,
|
||||
CompoundTag entityTag
|
||||
) {
|
||||
SpawnGroupData data = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityTag);
|
||||
BCLBiome biome = BiomeAPI.getFromBiome(world.getBiome(blockPosition()));
|
||||
if (biome == EndBiomes.FOGGY_MUSHROOMLAND) {
|
||||
|
@ -155,7 +157,7 @@ public class EndSlimeEntity extends Slime {
|
|||
this.getZ() + (double) h,
|
||||
this.random.nextFloat() * 360.0F,
|
||||
0.0F
|
||||
);
|
||||
);
|
||||
this.level.addFreshEntity(slimeEntity);
|
||||
}
|
||||
}
|
||||
|
@ -215,11 +217,13 @@ public class EndSlimeEntity extends Slime {
|
|||
return this.entityData.get(VARIANT) == 0;
|
||||
}
|
||||
|
||||
public static boolean canSpawn(EntityType entityType,
|
||||
LevelAccessor world,
|
||||
MobSpawnType spawnType,
|
||||
BlockPos pos,
|
||||
RandomSource random) {
|
||||
public static boolean canSpawn(
|
||||
EntityType entityType,
|
||||
LevelAccessor world,
|
||||
MobSpawnType spawnType,
|
||||
BlockPos pos,
|
||||
RandomSource random
|
||||
) {
|
||||
if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -363,7 +367,7 @@ public class EndSlimeEntity extends Slime {
|
|||
((EndSlimeMoveControl) EndSlimeEntity.this.getMoveControl()).look(
|
||||
EndSlimeEntity.this.getYRot(),
|
||||
EndSlimeEntity.this.isDealsDamage()
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -409,7 +413,7 @@ public class EndSlimeEntity extends Slime {
|
|||
EndSlimeEntity.this.getJumpSound(),
|
||||
EndSlimeEntity.this.getSoundVolume(),
|
||||
getJumpSoundPitch()
|
||||
);
|
||||
);
|
||||
}
|
||||
} else {
|
||||
EndSlimeEntity.this.xxa = 0.0F;
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.registry.EndSounds;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
|
@ -21,9 +24,6 @@ import net.minecraft.world.entity.player.Player;
|
|||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.registry.EndSounds;
|
||||
|
||||
public class ShadowWalkerEntity extends Monster {
|
||||
public ShadowWalkerEntity(EntityType<ShadowWalkerEntity> entityType, Level world) {
|
||||
super(entityType, world);
|
||||
|
@ -59,7 +59,7 @@ public class ShadowWalkerEntity extends Monster {
|
|||
0,
|
||||
0,
|
||||
0
|
||||
);
|
||||
);
|
||||
level.addParticle(
|
||||
ParticleTypes.SMOKE,
|
||||
getX() + random.nextGaussian() * 0.2,
|
||||
|
@ -68,7 +68,7 @@ public class ShadowWalkerEntity extends Monster {
|
|||
0,
|
||||
0,
|
||||
0
|
||||
);
|
||||
);
|
||||
level.addParticle(
|
||||
ParticleTypes.ENTITY_EFFECT,
|
||||
getX() + random.nextGaussian() * 0.2,
|
||||
|
@ -77,7 +77,7 @@ public class ShadowWalkerEntity extends Monster {
|
|||
0,
|
||||
0,
|
||||
0
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
package org.betterx.betterend.entity;
|
||||
|
||||
import org.betterx.bclib.entity.DespawnableAnimal;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.blocks.EndBlockProperties;
|
||||
import org.betterx.betterend.registry.EndBlocks;
|
||||
import org.betterx.betterend.registry.EndEntities;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -34,15 +43,6 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
|||
import net.minecraft.world.level.pathfinder.BlockPathTypes;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import org.betterx.bclib.entity.DespawnableAnimal;
|
||||
import org.betterx.bclib.util.BlocksHelper;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.blocks.EndBlockProperties;
|
||||
import org.betterx.betterend.registry.EndBlocks;
|
||||
import org.betterx.betterend.registry.EndEntities;
|
||||
import org.betterx.betterend.registry.EndItems;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
@ -205,17 +205,21 @@ public class SilkMothEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
Vec3 vec3d = null;
|
||||
if (SilkMothEntity.this.hivePos != null && SilkMothEntity.this.hiveWorld == SilkMothEntity.this.level) {
|
||||
if (SilkMothEntity.this.position()
|
||||
.distanceToSqr(SilkMothEntity.this.hivePos.getX(),
|
||||
SilkMothEntity.this.hivePos.getY(),
|
||||
SilkMothEntity.this.hivePos.getZ()) > 16) {
|
||||
.distanceToSqr(
|
||||
SilkMothEntity.this.hivePos.getX(),
|
||||
SilkMothEntity.this.hivePos.getY(),
|
||||
SilkMothEntity.this.hivePos.getZ()
|
||||
) > 16) {
|
||||
vec3d = SilkMothEntity.this.position().add(random.nextGaussian() * 2, 0, random.nextGaussian() * 2);
|
||||
}
|
||||
}
|
||||
vec3d = vec3d == null ? this.getRandomLocation() : vec3d;
|
||||
if (vec3d != null) {
|
||||
try {
|
||||
SilkMothEntity.this.navigation.moveTo(SilkMothEntity.this.navigation.createPath(new BlockPos(vec3d),
|
||||
1), 1.0D);
|
||||
SilkMothEntity.this.navigation.moveTo(SilkMothEntity.this.navigation.createPath(
|
||||
new BlockPos(vec3d),
|
||||
1
|
||||
), 1.0D);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
@ -233,7 +237,7 @@ public class SilkMothEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
vec3d3.x,
|
||||
vec3d3.z,
|
||||
1.5707963705062866D
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -252,7 +256,7 @@ public class SilkMothEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
SilkMothEntity.this.hivePos.getX(),
|
||||
SilkMothEntity.this.hivePos.getY(),
|
||||
SilkMothEntity.this.hivePos.getZ()
|
||||
) < 16384;
|
||||
) < 16384;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -301,7 +305,7 @@ public class SilkMothEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
SilkMothEntity.this.hiveWorld,
|
||||
SilkMothEntity.this.hivePos,
|
||||
state.setValue(EndBlockProperties.FULLNESS, fullness)
|
||||
);
|
||||
);
|
||||
}
|
||||
SilkMothEntity.this.level.playSound(
|
||||
null,
|
||||
|
@ -310,7 +314,7 @@ public class SilkMothEntity extends DespawnableAnimal implements FlyingAnimal {
|
|||
SoundSource.BLOCKS,
|
||||
1,
|
||||
1
|
||||
);
|
||||
);
|
||||
SilkMothEntity.this.discard();
|
||||
} else {
|
||||
SilkMothEntity.this.hivePos = null;
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity.model;
|
||||
|
||||
import org.betterx.betterend.entity.CubozoaEntity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.model.EntityModel;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
import net.minecraft.client.model.geom.PartNames;
|
||||
|
@ -11,10 +15,6 @@ import net.minecraft.client.model.geom.builders.PartDefinition;
|
|||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.entity.CubozoaEntity;
|
||||
|
||||
public class CubozoaEntityModel extends EntityModel<CubozoaEntity> {
|
||||
private final static int TENTACLE_COUNT = 4;
|
||||
|
||||
|
@ -32,26 +32,26 @@ public class CubozoaEntityModel extends EntityModel<CubozoaEntity> {
|
|||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(0, 17).addBox(-2.0F, -12.5F, -2.0F, 4.0F, 4.0F, 4.0F),
|
||||
PartPose.offset(0.0F, 24.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
"main_cube_r1",
|
||||
CubeListBuilder.create().texOffs(0, 0).addBox(-5.0F, -7.0F, -5.0F, 10.0F, 7.0F, 10.0F),
|
||||
PartPose.offsetAndRotation(0.0F, -14.0F, 0.0F, 0.0F, 0.0F, -3.1416F)
|
||||
);
|
||||
);
|
||||
|
||||
for (int i = 1; i <= TENTACLE_COUNT; i++) {
|
||||
PartDefinition tentaclePart = bodyPart.addOrReplaceChild(
|
||||
"tentacle_center_" + i,
|
||||
CubeListBuilder.create(),
|
||||
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, i * 1.5708F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
tentaclePart.addOrReplaceChild(
|
||||
"tentacle_" + i,
|
||||
CubeListBuilder.create().texOffs(16, 17).addBox(-4.0F, 0.0F, 0.0F, 8.0F, 7.0F, 0.0F),
|
||||
PartPose.offset(0.0F, -7.0F, 4.5F)
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
return LayerDefinition.create(modelData, 48, 48);
|
||||
|
@ -70,12 +70,14 @@ public class CubozoaEntityModel extends EntityModel<CubozoaEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(CubozoaEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void setupAnim(
|
||||
CubozoaEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
float sin = Mth.sin(animationProgress * 0.13F);
|
||||
scaleY = sin * 0.1F + 0.9F;
|
||||
scaleXZ = Mth.sin(animationProgress * 0.13F + 3.14F) * 0.1F + 0.9F;
|
||||
|
@ -86,14 +88,16 @@ public class CubozoaEntityModel extends EntityModel<CubozoaEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha) {
|
||||
public void renderToBuffer(
|
||||
PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha
|
||||
) {
|
||||
matrices.pushPose();
|
||||
matrices.scale(scaleXZ, scaleY, scaleXZ);
|
||||
model.render(matrices, vertices, light, overlay);
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity.model;
|
||||
|
||||
import org.betterx.betterend.entity.DragonflyEntity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.model.EntityModel;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
import net.minecraft.client.model.geom.PartNames;
|
||||
|
@ -10,10 +14,6 @@ import net.minecraft.client.model.geom.builders.MeshDefinition;
|
|||
import net.minecraft.client.model.geom.builders.PartDefinition;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.entity.DragonflyEntity;
|
||||
|
||||
public class DragonflyEntityModel extends EntityModel<DragonflyEntity> {
|
||||
private final ModelPart model;
|
||||
private final ModelPart head;
|
||||
|
@ -34,61 +34,61 @@ public class DragonflyEntityModel extends EntityModel<DragonflyEntity> {
|
|||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(0, 0).addBox(-4.0F, -4.0F, 0.0F, 4.0F, 4.0F, 9.0F),
|
||||
PartPose.offset(2.0F, 21.5F, -4.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.HEAD,
|
||||
CubeListBuilder.create().texOffs(17, 0).addBox(-1.5F, -1.5F, -2.5F, 3.0F, 3.0F, 3.0F),
|
||||
PartPose.offsetAndRotation(-2.0F, -2.0F, 0.0F, 0.3491F, 0.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
PartDefinition tailPart = bodyPart.addOrReplaceChild(
|
||||
PartNames.TAIL,
|
||||
CubeListBuilder.create().texOffs(26, 0).addBox(-1.5F, -1.5F, 0.0F, 3.0F, 3.0F, 7.0F),
|
||||
PartPose.offset(-2.0F, -2.0F, 9.0F)
|
||||
);
|
||||
);
|
||||
|
||||
tailPart.addOrReplaceChild(
|
||||
PartNames.TAIL_FIN,
|
||||
CubeListBuilder.create().texOffs(36, 0).addBox(-1.0F, -1.0F, 0.0F, 2.0F, 2.0F, 10.0F),
|
||||
PartPose.offset(0.0F, 0.0F, 7.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.LEFT_WING,
|
||||
CubeListBuilder.create().texOffs(0, 13).addBox(-15.0F, 0.0F, -3.0F, 15.0F, 0.0F, 4.0F),
|
||||
PartPose.offset(-2.0F, -4.0F, 4.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.RIGHT_WING,
|
||||
CubeListBuilder.create().mirror().texOffs(0, 13).addBox(0.0F, 0.0F, -3.0F, 15.0F, 0.0F, 4.0F),
|
||||
PartPose.offset(-2.0F, -4.0F, 4.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.LEFT_WING_BASE,
|
||||
CubeListBuilder.create().texOffs(4, 17).addBox(-12.0F, 0.0F, -2.5F, 12.0F, 0.0F, 3.0F),
|
||||
PartPose.offset(-2.0F, -4.0F, 8.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.RIGHT_WING_BASE,
|
||||
CubeListBuilder.create().mirror().texOffs(4, 17).addBox(0.0F, 0.0F, -2.5F, 12.0F, 0.0F, 3.0F),
|
||||
PartPose.offset(-2.0F, -4.0F, 8.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.LEFT_LEG,
|
||||
CubeListBuilder.create().texOffs(50, 1).addBox(0.0F, 0.0F, 0.0F, 0.0F, 3.0F, 6.0F),
|
||||
PartPose.offsetAndRotation(-1.0F, 0.0F, 1.0F, 0.0F, 0.0F, -0.5236F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.RIGHT_LEG,
|
||||
CubeListBuilder.create().texOffs(50, 1).addBox(0.0F, 0.0F, 0.0F, 0.0F, 3.0F, 6.0F),
|
||||
PartPose.offsetAndRotation(-3.0F, 0.0F, 1.0F, 0.0F, 0.0F, 0.5236F)
|
||||
);
|
||||
);
|
||||
|
||||
return LayerDefinition.create(modelData, 64, 64);
|
||||
}
|
||||
|
@ -109,12 +109,14 @@ public class DragonflyEntityModel extends EntityModel<DragonflyEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(DragonflyEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void setupAnim(
|
||||
DragonflyEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
float progress = animationProgress * 2F;
|
||||
|
||||
wing_1.zRot = 0.3491F + (float) Math.sin(progress) * 0.3491F;
|
||||
|
@ -131,14 +133,16 @@ public class DragonflyEntityModel extends EntityModel<DragonflyEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha) {
|
||||
public void renderToBuffer(
|
||||
PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha
|
||||
) {
|
||||
model.render(matrices, vertices, light, overlay);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity.model;
|
||||
|
||||
import org.betterx.betterend.entity.EndFishEntity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.model.EntityModel;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
import net.minecraft.client.model.geom.PartNames;
|
||||
|
@ -10,10 +14,6 @@ import net.minecraft.client.model.geom.builders.MeshDefinition;
|
|||
import net.minecraft.client.model.geom.builders.PartDefinition;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.entity.EndFishEntity;
|
||||
|
||||
public class EndFishEntityModel extends EntityModel<EndFishEntity> {
|
||||
private final ModelPart model;
|
||||
private final ModelPart fin_top;
|
||||
|
@ -30,37 +30,37 @@ public class EndFishEntityModel extends EntityModel<EndFishEntity> {
|
|||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -2.0F, -4.0F, 2.0F, 4.0F, 8.0F),
|
||||
PartPose.offset(0.0F, 20.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.TOP_FIN,
|
||||
CubeListBuilder.create().texOffs(0, 6).addBox(0.0F, -8.0F, 0.0F, 0.0F, 8.0F, 6.0F),
|
||||
PartPose.offsetAndRotation(0.0F, -2.0F, -4.0F, -0.6981F, 0.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.BOTTOM_FIN,
|
||||
CubeListBuilder.create().texOffs(0, 6).addBox(0.0F, 0.0F, 0.0F, 0.0F, 8.0F, 6.0F),
|
||||
PartPose.offsetAndRotation(0.0F, 2.0F, -4.0F, 0.6981F, 0.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.TAIL_FIN,
|
||||
CubeListBuilder.create().texOffs(0, 15).addBox(0.0F, -5.0F, 0.0F, 0.0F, 5.0F, 5.0F),
|
||||
PartPose.offsetAndRotation(0.0F, 0.0F, 2.0F, -0.7854F, 0.0F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.RIGHT_FIN,
|
||||
CubeListBuilder.create().texOffs(0, 25).addBox(-3.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F),
|
||||
PartPose.offsetAndRotation(-1.0F, 0.0F, -1.0F, 1.5708F, 0.7854F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
bodyPart.addOrReplaceChild(
|
||||
PartNames.LEFT_FIN,
|
||||
CubeListBuilder.create().mirror().texOffs(0, 25).addBox(0.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F),
|
||||
PartPose.offsetAndRotation(-1.0F, 0.0F, -1.0F, 1.5708F, -0.7854F, 0.0F)
|
||||
);
|
||||
);
|
||||
|
||||
return LayerDefinition.create(modelData, 32, 32);
|
||||
}
|
||||
|
@ -77,12 +77,14 @@ public class EndFishEntityModel extends EntityModel<EndFishEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(EndFishEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void setupAnim(
|
||||
EndFishEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
float s1 = (float) Math.sin(animationProgress * 0.1);
|
||||
float s2 = (float) Math.sin(animationProgress * 0.05);
|
||||
flipper.yRot = s1 * 0.3F;
|
||||
|
@ -93,14 +95,16 @@ public class EndFishEntityModel extends EntityModel<EndFishEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha) {
|
||||
public void renderToBuffer(
|
||||
PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha
|
||||
) {
|
||||
model.render(matrices, vertices, light, overlay);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package org.betterx.betterend.entity.model;
|
||||
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.entity.EndSlimeEntity;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.model.ListModel;
|
||||
import net.minecraft.client.model.geom.EntityModelSet;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
|
@ -12,11 +18,6 @@ import net.minecraft.client.model.geom.builders.PartDefinition;
|
|||
import net.minecraft.client.renderer.RenderType;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.bclib.util.MHelper;
|
||||
import org.betterx.betterend.entity.EndSlimeEntity;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T> {
|
||||
private final ModelPart innerCube;
|
||||
|
@ -43,37 +44,37 @@ public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T>
|
|||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(0, 0).addBox(-4.0F, 16.0F, -4.0F, 8.0F, 8.0F, 8.0F),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
} else {
|
||||
modelPartData.addOrReplaceChild(
|
||||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(0, 16).addBox(-3.0F, 17.0F, -3.0F, 6.0F, 6.0F, 6.0F),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
|
||||
modelPartData.addOrReplaceChild(
|
||||
PartNames.RIGHT_EYE,
|
||||
CubeListBuilder.create().texOffs(32, 0).addBox(-3.25F, 18.0F, -3.5F, 2.0F, 2.0F, 2.0F),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
|
||||
modelPartData.addOrReplaceChild(
|
||||
PartNames.LEFT_EYE,
|
||||
CubeListBuilder.create().texOffs(32, 4).addBox(1.25F, 18.0F, -3.5F, 2.0F, 2.0F, 2.0F),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
|
||||
modelPartData.addOrReplaceChild(
|
||||
PartNames.MOUTH,
|
||||
CubeListBuilder.create().texOffs(32, 8).addBox(0.0F, 21.0F, -3.5F, 1.0F, 1.0F, 1.0F),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
|
||||
PartDefinition flowerPart = modelPartData.addOrReplaceChild(
|
||||
"flower",
|
||||
CubeListBuilder.create(),
|
||||
PartPose.ZERO
|
||||
);
|
||||
);
|
||||
PartDefinition cropPart = modelPartData.addOrReplaceChild("crop", CubeListBuilder.create(), PartPose.ZERO);
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
|
@ -84,14 +85,14 @@ public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T>
|
|||
"petalRot_" + i,
|
||||
CubeListBuilder.create(),
|
||||
PartPose.offsetAndRotation(0, 0, 0, 0, rot, 0)
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
petalRotPart.addOrReplaceChild(
|
||||
"petal_" + i,
|
||||
CubeListBuilder.create().texOffs(40, 0).addBox(0.0F, 0.0F, 0.0F, 8.0F, 8.0F, 0.0F),
|
||||
PartPose.offset(-4, 8, 0)
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,8 +103,8 @@ public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T>
|
|||
super(RenderType::entityCutout);
|
||||
|
||||
ModelPart modelPart = modelSet.bakeLayer(onlyShell
|
||||
? EndEntitiesRenders.END_SLIME_SHELL_MODEL
|
||||
: EndEntitiesRenders.END_SLIME_MODEL);
|
||||
? EndEntitiesRenders.END_SLIME_SHELL_MODEL
|
||||
: EndEntitiesRenders.END_SLIME_MODEL);
|
||||
|
||||
innerCube = modelPart.getChild(PartNames.BODY);
|
||||
if (!onlyShell) {
|
||||
|
@ -122,12 +123,14 @@ public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T>
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(T entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void setupAnim(
|
||||
T entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
}
|
||||
|
||||
public void renderFlower(PoseStack matrices, VertexConsumer vertices, int light, int overlay) {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package org.betterx.betterend.entity.model;
|
||||
|
||||
import org.betterx.betterend.entity.SilkMothEntity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.model.EntityModel;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
import net.minecraft.client.model.geom.PartNames;
|
||||
|
@ -11,10 +15,6 @@ import net.minecraft.client.model.geom.builders.PartDefinition;
|
|||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.entity.SilkMothEntity;
|
||||
|
||||
public class SilkMothEntityModel extends EntityModel<SilkMothEntity> {
|
||||
private final ModelPart legsL;
|
||||
private final ModelPart cube_r1;
|
||||
|
@ -40,91 +40,91 @@ public class SilkMothEntityModel extends EntityModel<SilkMothEntity> {
|
|||
PartNames.LEFT_LEG,
|
||||
CubeListBuilder.create().texOffs(0, 0),
|
||||
PartPose.offsetAndRotation(1.5f, 19.9f, -0.45f, 0.0f, 0.0f, 0.6981f)
|
||||
);
|
||||
);
|
||||
|
||||
legsL.addOrReplaceChild(
|
||||
"cube_r1",
|
||||
CubeListBuilder.create().texOffs(0, 13).addBox(0.0216f, 0.0f, -0.5976f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f, 0.0f, 0.2182f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
legsL.addOrReplaceChild(
|
||||
"cube_r2",
|
||||
CubeListBuilder.create().texOffs(0, 15).addBox(0.0f, 0.0f, -0.6f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f, 0.0f, 0.0f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
legsL.addOrReplaceChild(
|
||||
"cube_r3",
|
||||
CubeListBuilder.create().texOffs(0, 14).addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f, 0.0f, -0.2182f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
PartDefinition legsR = modelPartData.addOrReplaceChild(
|
||||
PartNames.RIGHT_LEG,
|
||||
CubeListBuilder.create().texOffs(0, 0),
|
||||
PartPose.offsetAndRotation(-1.5f, 19.9f, -0.55f, 0.0f, 3.1416f, -0.6545f)
|
||||
);
|
||||
);
|
||||
|
||||
legsR.addOrReplaceChild(
|
||||
"cube_r4",
|
||||
CubeListBuilder.create().texOffs(0, 10).addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f, 0.0f, 0.2182f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
legsR.addOrReplaceChild(
|
||||
"cube_r5",
|
||||
CubeListBuilder.create().texOffs(0, 11).addBox(0.0f, 0.0f, -0.4f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f, 0.0f, 0.0f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
legsR.addOrReplaceChild(
|
||||
"cube_r6",
|
||||
CubeListBuilder.create().texOffs(0, 12).addBox(0.0216f, 0.0f, -0.4024f, 3.0f, 0.0f, 1.0f),
|
||||
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f, 0.0f, -0.2182f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
PartDefinition head_pivot = modelPartData.addOrReplaceChild(
|
||||
PartNames.HEAD,
|
||||
CubeListBuilder.create().texOffs(15, 10).addBox(-1.5f, -1.5f, -2.0f, 3.0f, 3.0f, 3.0f),
|
||||
PartPose.offset(0.0f, 18.0f, -3.0f)
|
||||
);
|
||||
);
|
||||
|
||||
head_pivot.addOrReplaceChild(
|
||||
"tendril_r_r1",
|
||||
CubeListBuilder.create().mirror().texOffs(23, 0).addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f),
|
||||
PartPose.offsetAndRotation(1.0f, -1.15f, -1.0f, 0.0f, 0.0f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
head_pivot.addOrReplaceChild(
|
||||
"tendril_r_r2",
|
||||
CubeListBuilder.create().texOffs(23, 0).addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f),
|
||||
PartPose.offsetAndRotation(-1.0f, -1.15f, -1.0f, 0.0f, 0.0f, -0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
PartDefinition bb_main = modelPartData.addOrReplaceChild(
|
||||
PartNames.BODY,
|
||||
CubeListBuilder.create().texOffs(19, 19).addBox(-2.5f, -8.5f, -3.0f, 5.0f, 5.0f, 3.0f),
|
||||
PartPose.offset(0.0f, 24.0f, 0.0f)
|
||||
);
|
||||
);
|
||||
|
||||
bb_main.addOrReplaceChild(
|
||||
PartNames.RIGHT_WING,
|
||||
CubeListBuilder.create().mirror().texOffs(0, 5).addBox(-7.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f),
|
||||
PartPose.offsetAndRotation(-1.5f, -6.5f, 0.5f, 0.0f, 0.0f, 0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
bb_main.addOrReplaceChild(
|
||||
PartNames.LEFT_WING,
|
||||
CubeListBuilder.create().texOffs(0, 5).addBox(-2.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f),
|
||||
PartPose.offsetAndRotation(1.5f, -6.5f, 0.5f, 0.0f, 0.0f, -0.3927f)
|
||||
);
|
||||
);
|
||||
|
||||
bb_main.addOrReplaceChild(
|
||||
"abdomen_r1",
|
||||
CubeListBuilder.create().texOffs(0, 10).addBox(-3.0f, -4.0f, -1.0f, 4.0f, 4.0f, 7.0f),
|
||||
PartPose.offsetAndRotation(1.0f, -3.9f, 0.0f, -0.3927f, 0.0f, 0.0f)
|
||||
);
|
||||
);
|
||||
|
||||
return LayerDefinition.create(modelData, 64, 64);
|
||||
}
|
||||
|
@ -150,12 +150,14 @@ public class SilkMothEntityModel extends EntityModel<SilkMothEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(SilkMothEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void setupAnim(
|
||||
SilkMothEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
wingR_r1.zRot = Mth.sin(animationProgress * 2F) * 0.4F + 0.3927F;
|
||||
wingL_r1.zRot = -wingR_r1.zRot;
|
||||
head_pivot.xRot = Mth.sin(animationProgress * 0.03F) * 0.1F;
|
||||
|
@ -167,14 +169,16 @@ public class SilkMothEntityModel extends EntityModel<SilkMothEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha) {
|
||||
public void renderToBuffer(
|
||||
PoseStack matrices,
|
||||
VertexConsumer vertices,
|
||||
int light,
|
||||
int overlay,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
float alpha
|
||||
) {
|
||||
bb_main.render(matrices, vertices, light, overlay);
|
||||
head_pivot.render(matrices, vertices, light, overlay);
|
||||
legsL.render(matrices, vertices, light, overlay);
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.CubozoaEntity;
|
||||
import org.betterx.betterend.entity.model.CubozoaEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
|
@ -8,13 +15,6 @@ import net.minecraft.client.renderer.entity.layers.EyesLayer;
|
|||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.CubozoaEntity;
|
||||
import org.betterx.betterend.entity.model.CubozoaEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class RendererEntityCubozoa extends MobRenderer<CubozoaEntity, CubozoaEntityModel> {
|
||||
private static final ResourceLocation[] TEXTURE = new ResourceLocation[2];
|
||||
private static final RenderType[] GLOW = new RenderType[2];
|
||||
|
@ -28,27 +28,30 @@ public class RendererEntityCubozoa extends MobRenderer<CubozoaEntity, CubozoaEnt
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
CubozoaEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void render(
|
||||
PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
CubozoaEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(GLOW[entity.getVariant()]);
|
||||
this.getParentModel()
|
||||
.renderToBuffer(matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
.renderToBuffer(
|
||||
matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.DragonflyEntity;
|
||||
import org.betterx.betterend.entity.model.DragonflyEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.client.renderer.entity.layers.EyesLayer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.DragonflyEntity;
|
||||
import org.betterx.betterend.entity.model.DragonflyEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class RendererEntityDragonfly extends MobRenderer<DragonflyEntity, DragonflyEntityModel> {
|
||||
private static final ResourceLocation TEXTURE = BetterEnd.makeID("textures/entity/dragonfly.png");
|
||||
private static final RenderType GLOW = RenderType.eyes(BetterEnd.makeID("textures/entity/dragonfly_glow.png"));
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.EndFishEntity;
|
||||
import org.betterx.betterend.entity.model.EndFishEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
|
@ -8,13 +15,6 @@ import net.minecraft.client.renderer.entity.layers.EyesLayer;
|
|||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.EndFishEntity;
|
||||
import org.betterx.betterend.entity.model.EndFishEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class RendererEntityEndFish extends MobRenderer<EndFishEntity, EndFishEntityModel> {
|
||||
private static final ResourceLocation[] TEXTURE = new ResourceLocation[EndFishEntity.VARIANTS];
|
||||
private static final RenderType[] GLOW = new RenderType[EndFishEntity.VARIANTS];
|
||||
|
@ -28,27 +28,30 @@ public class RendererEntityEndFish extends MobRenderer<EndFishEntity, EndFishEnt
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
EndFishEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void render(
|
||||
PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
EndFishEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(GLOW[entity.getVariant()]);
|
||||
this.getParentModel()
|
||||
.renderToBuffer(matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
.renderToBuffer(
|
||||
matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.EndSlimeEntity;
|
||||
import org.betterx.betterend.entity.model.EndSlimeEntityModel;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
|
@ -12,12 +18,6 @@ import net.minecraft.client.renderer.texture.OverlayTexture;
|
|||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.EndSlimeEntity;
|
||||
import org.betterx.betterend.entity.model.EndSlimeEntityModel;
|
||||
|
||||
public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlimeEntityModel<EndSlimeEntity>> {
|
||||
private static final ResourceLocation[] TEXTURE = new ResourceLocation[4];
|
||||
private static final RenderType[] GLOW = new RenderType[4];
|
||||
|
@ -32,27 +32,30 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
EndSlimeEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch) {
|
||||
public void render(
|
||||
PoseStack matrices,
|
||||
MultiBufferSource vertexConsumers,
|
||||
int light,
|
||||
EndSlimeEntity entity,
|
||||
float limbAngle,
|
||||
float limbDistance,
|
||||
float tickDelta,
|
||||
float animationProgress,
|
||||
float headYaw,
|
||||
float headPitch
|
||||
) {
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(GLOW[entity.getSlimeType()]);
|
||||
this.getParentModel()
|
||||
.renderToBuffer(matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
.renderToBuffer(
|
||||
matrices,
|
||||
vertexConsumer,
|
||||
15728640,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
if (entity.isLake()) {
|
||||
this.getParentModel().renderFlower(matrices, vertexConsumer, 15728640, OverlayTexture.NO_OVERLAY);
|
||||
}
|
||||
|
@ -66,12 +69,14 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(EndSlimeEntity slimeEntity,
|
||||
float f,
|
||||
float g,
|
||||
PoseStack matrixStack,
|
||||
MultiBufferSource vertexConsumerProvider,
|
||||
int i) {
|
||||
public void render(
|
||||
EndSlimeEntity slimeEntity,
|
||||
float f,
|
||||
float g,
|
||||
PoseStack matrixStack,
|
||||
MultiBufferSource vertexConsumerProvider,
|
||||
int i
|
||||
) {
|
||||
this.shadowRadius = 0.25F * (float) slimeEntity.getSize();
|
||||
super.render(slimeEntity, f, g, matrixStack, vertexConsumerProvider, i);
|
||||
}
|
||||
|
@ -90,42 +95,48 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
|||
private final EndSlimeEntityModel<T> modelOrdinal;
|
||||
private final EndSlimeEntityModel<T> modelLake;
|
||||
|
||||
public OverlayFeatureRenderer(RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext,
|
||||
EntityRendererProvider.Context ctx) {
|
||||
public OverlayFeatureRenderer(
|
||||
RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext,
|
||||
EntityRendererProvider.Context ctx
|
||||
) {
|
||||
super(featureRendererContext);
|
||||
modelOrdinal = new EndSlimeEntityModel<>(ctx.getModelSet(), true);
|
||||
modelLake = new EndSlimeEntityModel<>(ctx.getModelSet(), true);
|
||||
}
|
||||
|
||||
public void render(PoseStack matrixStack,
|
||||
MultiBufferSource vertexConsumerProvider,
|
||||
int i,
|
||||
T livingEntity,
|
||||
float f,
|
||||
float g,
|
||||
float h,
|
||||
float j,
|
||||
float k,
|
||||
float l) {
|
||||
public void render(
|
||||
PoseStack matrixStack,
|
||||
MultiBufferSource vertexConsumerProvider,
|
||||
int i,
|
||||
T livingEntity,
|
||||
float f,
|
||||
float g,
|
||||
float h,
|
||||
float j,
|
||||
float k,
|
||||
float l
|
||||
) {
|
||||
if (!livingEntity.isInvisible()) {
|
||||
if (livingEntity.isLake()) {
|
||||
VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RenderType.entityCutout(this.getTextureLocation(
|
||||
livingEntity)));
|
||||
this.getParentModel()
|
||||
.renderFlower(matrixStack,
|
||||
vertexConsumer,
|
||||
i,
|
||||
LivingEntityRenderer.getOverlayCoords(livingEntity, 0.0F)
|
||||
);
|
||||
.renderFlower(
|
||||
matrixStack,
|
||||
vertexConsumer,
|
||||
i,
|
||||
LivingEntityRenderer.getOverlayCoords(livingEntity, 0.0F)
|
||||
);
|
||||
} else if (livingEntity.isAmber() || livingEntity.isChorus()) {
|
||||
VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RenderType.entityCutout(this.getTextureLocation(
|
||||
livingEntity)));
|
||||
this.getParentModel()
|
||||
.renderCrop(matrixStack,
|
||||
vertexConsumer,
|
||||
i,
|
||||
LivingEntityRenderer.getOverlayCoords(livingEntity, 0.0F)
|
||||
);
|
||||
.renderCrop(
|
||||
matrixStack,
|
||||
vertexConsumer,
|
||||
i,
|
||||
LivingEntityRenderer.getOverlayCoords(livingEntity, 0.0F)
|
||||
);
|
||||
}
|
||||
|
||||
EndSlimeEntityModel<T> model = livingEntity.getSlimeType() == 1 ? modelLake : modelOrdinal;
|
||||
|
@ -143,7 +154,7 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
|||
1.0F,
|
||||
1.0F,
|
||||
1.0F
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.ShadowWalkerEntity;
|
||||
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
import net.minecraft.client.model.geom.ModelLayers;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.HumanoidMobRenderer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.ShadowWalkerEntity;
|
||||
|
||||
public class RendererEntityShadowWalker extends HumanoidMobRenderer<ShadowWalkerEntity, PlayerModel<ShadowWalkerEntity>> {
|
||||
private static final ResourceLocation TEXTURE = BetterEnd.makeID("textures/entity/shadow_walker.png");
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package org.betterx.betterend.entity.render;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.entity.SilkMothEntity;
|
||||
import org.betterx.betterend.entity.model.SilkMothEntityModel;
|
||||
import org.betterx.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
public class SilkMothEntityRenderer extends MobRenderer<SilkMothEntity, SilkMothEntityModel> {
|
||||
private static final ResourceLocation TEXTURE = BetterEnd.makeID("textures/entity/silk_moth.png");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue