Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//file:noinspection GroovyAssignabilityCheck
plugins {
id "fabric-loom" version "1.7.+"
id "fabric-loom" version "1.10.+"
id "com.github.johnrengelman.shadow" version "7.1.+"
id "me.modmuss50.mod-publish-plugin" version "0.5.2"
}
Expand Down
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@ org.gradle.jvmargs = -Xmx1G

# minecraft, mappings and loader dependencies
# check these on https://modmuss50.me/fabric.html
minecraft_version = 1.21.4
quilt_mappings = 3
minecraft_version = 1.21.5
quilt_mappings = 6
loader_version = 0.16.10
kaleido_config_version = 0.3.1+1.3.2
kaleido_config_version = 0.3.3+1.3.2

# mod properties
mod_version = 1.3.6+mc1.21.4
mod_version = 1.3.6+mc1.21.5
maven_group = rainglow
archives_base_name = rainglow

# other dependencies
java_version = 21
mod_menu_version = 13.0.0-beta.1
fabric_api_version = 0.118.5+1.21.4
mod_menu_version = 14.0.0-rc.2
fabric_api_version = 0.124.0+1.21.5

pub.should_publish = true
pub.additional_versions = 1.21.4
pub.additional_versions = 1.21.5
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package io.ix0rai.rainglow.data;

public interface EntityVariantProvider {
RainglowColour rainglow$getVariant();
void rainglow$setVariant(RainglowColour colour);
}

This file was deleted.

10 changes: 5 additions & 5 deletions src/main/java/io/ix0rai/rainglow/data/ParticleHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@

import net.minecraft.client.particle.ItemBreakParticle;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.render.item.ItemRenderState;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.unmapped.C_hvackyip;

/**
* @author A5ho9999
* Helper for creating particles because Mojang likes to torture everyone
*/
public class ParticleHelper {
public static class CustomItemBreakParticle extends ItemBreakParticle {
public CustomItemBreakParticle(ClientWorld world, double d, double e, double f, C_hvackyip c_hvackyip) {
super(world, d, e, f, c_hvackyip);
public CustomItemBreakParticle(ClientWorld world, double d, double e, double f, ItemRenderState itemRenderState) {
super(world, d, e, f, itemRenderState);
}
}

public static Particle createItemBreakParticle(ClientWorld world, double d, double e, double f, C_hvackyip c_hvackyip) {
return new CustomItemBreakParticle(world, d, e, f, c_hvackyip);
public static Particle createItemBreakParticle(ClientWorld world, double d, double e, double f, ItemRenderState itemRenderState) {
return new CustomItemBreakParticle(world, d, e, f, itemRenderState);
}
}
3 changes: 2 additions & 1 deletion src/main/java/io/ix0rai/rainglow/data/RainglowEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ public Item getItem(int index) {
}

public RainglowColour readNbt(World world, NbtCompound nbt, RandomGenerator random) {
RainglowColour colour = RainglowColour.get(nbt.getString(Rainglow.CUSTOM_NBT_KEY));
// TODO: correctly handle optional
RainglowColour colour = RainglowColour.get(nbt.getString(Rainglow.CUSTOM_NBT_KEY).get());

if (Rainglow.colourUnloaded(world, this, colour)) {
colour = Rainglow.generateRandomColour(world, random);
Expand Down

This file was deleted.

12 changes: 6 additions & 6 deletions src/main/java/io/ix0rai/rainglow/mixin/AllayEntityMixin.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.ix0rai.rainglow.mixin;

import io.ix0rai.rainglow.Rainglow;
import io.ix0rai.rainglow.data.AllayVariantProvider;
import io.ix0rai.rainglow.data.EntityVariantProvider;
import io.ix0rai.rainglow.data.RainglowColour;
import io.ix0rai.rainglow.data.RainglowEntity;
import net.minecraft.entity.Entity;
Expand All @@ -17,7 +17,7 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(AllayEntity.class)
public abstract class AllayEntityMixin extends Entity implements AllayVariantProvider {
public abstract class AllayEntityMixin extends Entity implements EntityVariantProvider {
@Shadow public abstract void writeCustomDataToNbt(NbtCompound nbt);

protected AllayEntityMixin(EntityType<? extends AllayEntity> entityType, World world) {
Expand All @@ -33,24 +33,24 @@ public void writeCustomDataToNbt(NbtCompound nbt, CallbackInfo ci) {

@Inject(method = "readCustomDataFromNbt", at = @At("TAIL"))
public void readCustomDataFromNbt(NbtCompound nbt, CallbackInfo ci) {
this.setVariant(RainglowEntity.ALLAY.readNbt(this.getWorld(), nbt, this.random));
this.rainglow$setVariant(RainglowEntity.ALLAY.readNbt(this.getWorld(), nbt, this.random));
}

// triggered when an allay duplicates, to apply the same colour as parent
@Redirect(method = "duplicate", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;spawnEntity(Lnet/minecraft/entity/Entity;)Z"))
public boolean spawnWithColour(World instance, Entity entity) {
RainglowColour colour = Rainglow.getColour(this.getUuid(), this.getWorld(), RainglowEntity.ALLAY);
((AllayVariantProvider) entity).setVariant(colour);
((EntityVariantProvider) entity).rainglow$setVariant(colour);
return this.getWorld().spawnEntity(entity);
}

@Override
public RainglowColour getVariant() {
public RainglowColour rainglow$getVariant() {
return Rainglow.getColour(this.getUuid(), this.getWorld(), RainglowEntity.ALLAY);
}

@Override
public void setVariant(RainglowColour colour) {
public void rainglow$setVariant(RainglowColour colour) {
Rainglow.setColour(this, colour);
}
}
2 changes: 1 addition & 1 deletion src/main/java/io/ix0rai/rainglow/mixin/DyeItemMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ private void useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity
&& !Rainglow.colourUnloaded(user.getWorld(), entityType, colour)
&& Rainglow.CONFIG.isEntityEnabled(entityType)
&& Rainglow.getColour(entity.getUuid(), entity.getWorld(), entityType) != colour) {
entity.getWorld().playSoundFromEntity(user, entity, SoundEvents.BLOCK_AMETHYST_CLUSTER_BREAK, SoundCategory.PLAYERS, 5.0f, 1.0f);
entity.getWorld().playSoundFromEntity(entity, SoundEvents.BLOCK_AMETHYST_CLUSTER_BREAK, SoundCategory.PLAYERS, 5.0f, 1.0f);
if (!user.getWorld().isClient()) {
stack.decrement(1);
}
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/io/ix0rai/rainglow/mixin/GlowSquidEntityMixin.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.ix0rai.rainglow.mixin;

import io.ix0rai.rainglow.Rainglow;
import io.ix0rai.rainglow.data.EntityVariantProvider;
import io.ix0rai.rainglow.data.RainglowColour;
import io.ix0rai.rainglow.data.RainglowEntity;
import io.ix0rai.rainglow.data.GlowSquidVariantProvider;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.WaterCreatureEntity;
import net.minecraft.entity.passive.GlowSquidEntity;
Expand All @@ -20,7 +20,7 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(GlowSquidEntity.class)
public abstract class GlowSquidEntityMixin extends SquidEntity implements GlowSquidVariantProvider {
public abstract class GlowSquidEntityMixin extends SquidEntity implements EntityVariantProvider {
protected GlowSquidEntityMixin(EntityType<? extends SquidEntity> entityType, World world) {
super(entityType, world);
throw new UnsupportedOperationException();
Expand All @@ -34,7 +34,7 @@ public void writeCustomDataToNbt(NbtCompound nbt, CallbackInfo ci) {

@Inject(method = "readCustomDataFromNbt", at = @At("TAIL"))
public void readCustomDataFromNbt(NbtCompound nbt, CallbackInfo ci) {
this.setVariant(RainglowEntity.GLOW_SQUID.readNbt(this.getWorld(), nbt, this.random));
this.rainglow$setVariant(RainglowEntity.GLOW_SQUID.readNbt(this.getWorld(), nbt, this.random));
}

/**
Expand All @@ -53,12 +53,12 @@ public void tickMovement(CallbackInfo ci) {
}

@Override
public RainglowColour getVariant() {
public RainglowColour rainglow$getVariant() {
return Rainglow.getColour(this.getUuid(), this.getWorld(), RainglowEntity.GLOW_SQUID);
}

@Override
public void setVariant(RainglowColour colour) {
public void rainglow$setVariant(RainglowColour colour) {
Rainglow.setColour(this, colour);
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/io/ix0rai/rainglow/mixin/MobEntityMixin.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package io.ix0rai.rainglow.mixin;

import io.ix0rai.rainglow.Rainglow;
import io.ix0rai.rainglow.data.EntityVariantProvider;
import io.ix0rai.rainglow.data.RainglowColour;
import io.ix0rai.rainglow.data.RainglowEntity;
import net.minecraft.entity.EntityData;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.SpawnReason;
import net.minecraft.entity.VariantProvider;
import net.minecraft.entity.mob.MobEntity;
import net.minecraft.world.LocalDifficulty;
import net.minecraft.world.ServerWorldAccess;
Expand All @@ -31,7 +31,7 @@ public void initialize(ServerWorldAccess world, LocalDifficulty difficulty, Spaw
RainglowEntity entity = RainglowEntity.get(this);
if (entity != null) {
RainglowColour colour = generateColour(entity);
((VariantProvider<RainglowColour>) this).setVariant(colour);
((EntityVariantProvider) this).rainglow$setVariant(colour);
cir.setReturnValue(entity.createEntityData(colour));
}
}
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/io/ix0rai/rainglow/mixin/SlimeEntityMixin.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.ix0rai.rainglow.mixin;

import io.ix0rai.rainglow.Rainglow;
import io.ix0rai.rainglow.data.EntityVariantProvider;
import io.ix0rai.rainglow.data.RainglowColour;
import io.ix0rai.rainglow.data.RainglowEntity;
import io.ix0rai.rainglow.data.SlimeVariantProvider;
import net.minecraft.entity.*;
import net.minecraft.entity.mob.SlimeEntity;
import net.minecraft.nbt.NbtCompound;
Expand All @@ -19,7 +19,7 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(SlimeEntity.class)
public abstract class SlimeEntityMixin extends Entity implements SlimeVariantProvider {
public abstract class SlimeEntityMixin extends Entity implements EntityVariantProvider {
@Shadow
protected abstract ParticleEffect getParticles();

Expand All @@ -36,7 +36,7 @@ public void writeCustomDataToNbt(NbtCompound nbt, CallbackInfo ci) {

@Inject(method = "readCustomDataFromNbt", at = @At("TAIL"))
public void readCustomDataFromNbt(NbtCompound nbt, CallbackInfo ci) {
this.setVariant(RainglowEntity.SLIME.readNbt(this.getWorld(), nbt, this.random));
this.rainglow$setVariant(RainglowEntity.SLIME.readNbt(this.getWorld(), nbt, this.random));
}

/**
Expand Down Expand Up @@ -65,10 +65,10 @@ private void preserveColorOnSplit(Entity.RemovalReason reason, CallbackInfo ci)
//noinspection unchecked
thisSlime.convert((EntityType<SlimeEntity>) thisSlime.getType(), new EntityConversionParameters(EntityConversionType.SPLIT_ON_DEATH, false, false, team), SpawnReason.TRIGGERED, (newSlime) -> {
newSlime.setSize(newSize, true);
newSlime.refreshPositionAndAngles(thisSlime.getX() + offsetX, thisSlime.getY() + 0.5, thisSlime.getZ() + offsetZ, thisSlime.getRandom().nextFloat() * 360.0F, 0.0F);
newSlime.setPosAndAngles(thisSlime.getX() + offsetX, thisSlime.getY() + 0.5, thisSlime.getZ() + offsetZ, thisSlime.getRandom().nextFloat() * 360.0F, 0.0F);

// Now that headache is done, finally set the child slime color to match the parent
((SlimeVariantProvider) newSlime).setVariant(parentColor);
((EntityVariantProvider) newSlime).rainglow$setVariant(parentColor);
});
}

Expand Down Expand Up @@ -104,12 +104,12 @@ public void tick(CallbackInfo ci) {
}

@Override
public RainglowColour getVariant() {
public RainglowColour rainglow$getVariant() {
return Rainglow.getColour(this.getUuid(), this.getWorld(), RainglowEntity.SLIME);
}

@Override
public void setVariant(RainglowColour colour) {
public void rainglow$setVariant(RainglowColour colour) {
Rainglow.setColour(this, colour);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import io.ix0rai.rainglow.data.EntityRenderStateTracker;
import io.ix0rai.rainglow.data.RainglowEntity;
import net.minecraft.class_9996;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.entity.AllayEntityRenderer;
import net.minecraft.client.render.entity.state.AllayRenderState;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -16,8 +16,8 @@

@Mixin(AllayEntityRenderer.class)
public class AllayEntityRendererMixin {
@Inject(method = "m_vhdjjpxx", at = @At("HEAD"), cancellable = true)
public void getTexture(class_9996 state, CallbackInfoReturnable<Identifier> cir) {
@Inject(method = "getTexture*", at = @At("HEAD"), cancellable = true)
public void getTexture(AllayRenderState state, CallbackInfoReturnable<Identifier> cir) {
if (state instanceof EntityRenderStateTracker) {
UUID entityUuid = ((EntityRenderStateTracker) state).rainglow$getEntityUuid();
if (entityUuid != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package io.ix0rai.rainglow.mixin.client;

import io.ix0rai.rainglow.data.EntityRenderStateTracker;
import net.minecraft.class_10017;
import net.minecraft.client.render.entity.state.EntityRenderState;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;

import java.util.UUID;

@Mixin(class_10017.class)
@Mixin(EntityRenderState.class)
public class EntityRenderStateMixin implements EntityRenderStateTracker {
@Unique
private UUID entityUuid;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package io.ix0rai.rainglow.mixin.client;

import io.ix0rai.rainglow.data.EntityRenderStateTracker;
import net.minecraft.class_10017;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.client.render.entity.state.EntityRenderState;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(EntityRenderer.class)
public class EntityRendererMixin<T extends Entity, S extends class_10017> {
@Inject(method = "method_62354", at = @At("HEAD"))
public class EntityRendererMixin<T extends Entity, S extends EntityRenderState> {
@Inject(method = "updateState(Lnet/minecraft/entity/Entity;Lnet/minecraft/client/render/entity/state/EntityRenderState;F)V", at = @At("HEAD"))
private void updateRenderState(T entity, S state, float f, CallbackInfo ci) {
if (state instanceof EntityRenderStateTracker) {
((EntityRenderStateTracker) state).rainglow$setEntity(entity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import io.ix0rai.rainglow.data.EntityRenderStateTracker;
import io.ix0rai.rainglow.data.RainglowEntity;
import net.minecraft.class_10069;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.entity.GlowSquidEntityRenderer;
import net.minecraft.client.render.entity.state.SquidRenderState;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -20,8 +20,8 @@ public class GlowSquidEntityRendererMixin {
* @reason use the colour from the entity's NBT data for textures
* @author ix0rai
*/
@Inject(method = "m_vhdjjpxx", at = @At("HEAD"), cancellable = true)
public void getTexture(class_10069 state, CallbackInfoReturnable<Identifier> cir) {
@Inject(method = "getTexture*", at = @At("HEAD"), cancellable = true)
public void getTexture(SquidRenderState state, CallbackInfoReturnable<Identifier> cir) {
if (state instanceof EntityRenderStateTracker) {
UUID entityUuid = ((EntityRenderStateTracker) state).rainglow$getEntityUuid();
if (entityUuid != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import io.ix0rai.rainglow.data.EntityRenderStateTracker;
import io.ix0rai.rainglow.data.RainglowEntity;
import net.minecraft.class_10067;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.entity.SlimeEntityRenderer;
import net.minecraft.client.render.entity.state.SlimeRenderState;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -16,8 +16,8 @@

@Mixin(SlimeEntityRenderer.class)
public class SlimeEntityRendererMixin {
@Inject(method = "m_vhdjjpxx", at = @At("HEAD"), cancellable = true)
public void getTexture(class_10067 state, CallbackInfoReturnable<Identifier> cir) {
@Inject(method = "getTexture*", at = @At("HEAD"), cancellable = true)
public void getTexture(SlimeRenderState state, CallbackInfoReturnable<Identifier> cir) {
if (state instanceof EntityRenderStateTracker) {
UUID entityUuid = ((EntityRenderStateTracker) state).rainglow$getEntityUuid();
if (entityUuid != null) {
Expand Down
Loading