Skip to content

Commit

Permalink
Abstracted Colour Rarity into method
Browse files Browse the repository at this point in the history
  • Loading branch information
Dariensg committed Oct 7, 2023
1 parent 0c2fb66 commit 14cb36d
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions src/main/java/io/ix0rai/rainglow/mixin/MobEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
import net.minecraft.entity.passive.AllayEntity;
import net.minecraft.entity.passive.GlowSquidEntity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.util.random.RandomGenerator;
import net.minecraft.world.LocalDifficulty;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
Expand All @@ -36,16 +38,21 @@ protected MobEntityMixin(EntityType<? extends MobEntity> entityType, World world
public void initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, NbtCompound entityNbt, CallbackInfoReturnable<EntityData> cir) {
if ((Object) this instanceof GlowSquidEntity glowSquid) {
String colour = Rainglow.generateRandomColourId(this.getRandom());
((GlowSquidVariantProvider) glowSquid).setVariant(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.BLUE : RainglowColour.get(colour));
cir.setReturnValue(new GlowSquidEntityData(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.BLUE : RainglowColour.get(colour)));
((GlowSquidVariantProvider) glowSquid).setVariant(getColourOrDefault(this.random, RainglowColour.BLUE, colour));
cir.setReturnValue(new GlowSquidEntityData(getColourOrDefault(this.random, RainglowColour.BLUE, colour)));
} else if ((Object) this instanceof AllayEntity allay) {
String colour = Rainglow.generateRandomColourId(this.getRandom());
((AllayVariantProvider) allay).setVariant(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.BLUE : RainglowColour.get(colour));
cir.setReturnValue(new AllayEntityData(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.BLUE : RainglowColour.get(colour)));
((AllayVariantProvider) allay).setVariant(getColourOrDefault(this.random, RainglowColour.BLUE, colour));
cir.setReturnValue(new AllayEntityData(getColourOrDefault(this.random, RainglowColour.BLUE, colour)));
} else if ((Object) this instanceof SlimeEntity slime) {
String colour = Rainglow.generateRandomColourId(this.getRandom());
((SlimeVariantProvider) slime).setVariant(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.LIME : RainglowColour.get(colour));
cir.setReturnValue(new SlimeEntityData(this.random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? RainglowColour.LIME : RainglowColour.get(colour)));
((SlimeVariantProvider) slime).setVariant(getColourOrDefault(this.random, RainglowColour.LIME, colour));
cir.setReturnValue(new SlimeEntityData(getColourOrDefault(this.random, RainglowColour.LIME, colour)));
}
}

@Unique
private static RainglowColour getColourOrDefault(RandomGenerator random, RainglowColour defaultColour, String randomColour) {
return random.nextInt(100) >= Rainglow.CONFIG.getRarity() ? defaultColour : RainglowColour.get(randomColour);
}
}

0 comments on commit 14cb36d

Please sign in to comment.