From ab7cc7257b410c2b0ccc66ce21ff6a36a458aa0e Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Wed, 14 Jun 2023 12:42:28 +1000 Subject: [PATCH 1/6] added colours for ACHILLEAN pigment, waiting on a texture --- .../hexcasting/common/items/colorizer/ItemPrideColorizer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java index cc373a51..8b94d689 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java @@ -20,6 +20,7 @@ public class ItemPrideColorizer extends Item implements ColorizerItem { DEMIBOY(new int[]{0x9a9fa1, 0xa9ffff, 0xffffff}), DEMIGIRL(new int[]{0x9a9fa1, 0xfcb1ff, 0xffffff}), GAY(new int[]{0xd82f3a, 0xe0883f, 0xebf367, 0x2db418, 0x2f4dd8}), +// ACHILLEAN(new int[]{0x028d6e, 0x22cdad, 0xffffff, 0xe49c7, 0x4f4aca}), GENDERFLUID(new int[]{0xfbacf9, 0xffffff, 0x9c2bd0, 0x333233, 0x2f4dd8}), GENDERQUEER(new int[]{0xca78ef, 0xffffff, 0x2db418}), // how to do an intersex gradient escapes me @@ -32,7 +33,7 @@ public class ItemPrideColorizer extends Item implements ColorizerItem { private final int[] colors; - private Type(int[] colors) { + Type(int[] colors) { this.colors = colors; for (int i = 0; i < this.colors.length; i++) { this.colors[i] |= 0xFF_000000; From 4d4262aeff40ee5c7f58cbb374b5a08d073a36e9 Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Wed, 14 Jun 2023 23:09:39 +1000 Subject: [PATCH 2/6] fixed some doc stuff (cherry picked from commit b09e7a1ff45fbf7e43f10551cd9e99ff4bbc1059) --- .../thehexbook/en_us/categories/patterns/great_spells.json | 4 ++-- .../thehexbook/en_us/categories/patterns/spells.json | 4 ++-- .../thehexbook/en_us/entries/patterns/circle.json | 2 +- .../thehexbook/en_us/entries/patterns/lists.json | 4 +++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/great_spells.json b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/great_spells.json index 543a181c..1e46a511 100644 --- a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/great_spells.json +++ b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/great_spells.json @@ -1,7 +1,7 @@ { - "name": "hexcasting.entry.great_spells", + "name": "hexcasting.category.great_spells", "icon": "minecraft:textures/mob_effect/conduit_power.png", - "description": "hexcasting.entry.great_spells.desc", + "description": "hexcasting.category.great_spells.desc", "parent": "hexcasting:patterns", "sortnum": 1 } diff --git a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/spells.json b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/spells.json index 009c9461..039aefc5 100644 --- a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/spells.json +++ b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/categories/patterns/spells.json @@ -1,7 +1,7 @@ { - "name": "hexcasting.entry.spells", + "name": "hexcasting.category.spells", "icon": "minecraft:textures/item/enchanted_book.png", - "description": "hexcasting.entry.spells.desc", + "description": "hexcasting.category.spells.desc", "parent": "hexcasting:patterns", "sortnum": 0 } diff --git a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/circle.json b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/circle.json index c8ab79d2..bb0e7986 100644 --- a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/circle.json +++ b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/circle.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.circle_patterns", "category": "hexcasting:patterns", - "icon": "hexcasting:empty_impetus", + "icon": "hexcasting:impetus/empty", "sortnum": 13, "advancement": "hexcasting:enlightenment", "entry_color": "54398a", diff --git a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/lists.json b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/lists.json index 397515fe..36fb095b 100644 --- a/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/lists.json +++ b/Common/src/main/resources/data/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/lists.json @@ -40,8 +40,9 @@ }, { "type": "hexcasting:pattern", + "header": "hexcasting.action.hexcasting:concat", "op_id": "hexcasting:add", - "anchor": "hexcasting:add", + "anchor": "hexcasting:concat", "input": "list, list", "output": "list", "text": "hexcasting.page.lists.concat" @@ -64,6 +65,7 @@ }, { "type": "hexcasting:pattern", + "header": "hexcasting.action.hexcasting:list_size", "op_id": "hexcasting:abs", "anchor": "hexcasting:abs", "input": "list", From 75b4eb7a4ba5bbed6ee18c4ce02145c62e9a99ab Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Thu, 15 Jun 2023 00:07:56 +1000 Subject: [PATCH 3/6] circles can now store their own pigments. --- .../circles/BlockEntityAbstractImpetus.java | 25 +++++++++++++++- .../casting/circles/CircleExecutionState.java | 20 +++++++------ .../api/casting/circles/ICircleComponent.java | 2 +- .../api/casting/eval/CastingEnvironment.java | 2 ++ .../api/casting/eval/env/CircleCastEnv.java | 30 ++++++++----------- .../casting/eval/env/PlayerBasedCastEnv.java | 8 +++++ .../api/casting/mishaps/MishapOthersName.kt | 4 +-- .../casting/actions/spells/OpColorize.kt | 10 ++----- .../casting/actions/spells/OpConjureBlock.kt | 2 +- .../actions/spells/OpMakePackagedSpell.kt | 2 +- .../OpTheOnlyReasonAnyoneDownloadedPsi.kt | 7 +---- 11 files changed, 66 insertions(+), 46 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java index 44b7573a..ac8bf92d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java @@ -3,6 +3,7 @@ package at.petrak.hexcasting.api.casting.circles; import at.petrak.hexcasting.api.block.HexBlockEntity; import at.petrak.hexcasting.api.block.circle.BlockCircleComponent; import at.petrak.hexcasting.api.misc.MediaConstants; +import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.MediaHelper; import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker; import at.petrak.hexcasting.common.lib.HexItems; @@ -47,7 +48,8 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen TAG_EXECUTION_STATE = "executor", TAG_MEDIA = "media", TAG_ERROR_MSG = "errorMsg", - TAG_ERROR_DISPLAY = "errorDisplay"; + TAG_ERROR_DISPLAY = "errorDisplay", + TAG_PIGMENT = "pigment"; // We might try to load the executor in loadModData when the level doesn't exist yet, // so save the tag and load it lazy @@ -62,6 +64,8 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen protected Component displayMsg = null; @Nullable protected ItemStack displayItem = null; + @Nullable + protected FrozenPigment pigment = null; public BlockEntityAbstractImpetus(BlockEntityType pType, BlockPos pWorldPosition, BlockState pBlockState) { @@ -228,6 +232,7 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen public void setMedia(long media) { this.media = media; + sync(); } public long extractMediaFromInsertedItem(ItemStack stack, boolean simulate) { @@ -264,6 +269,20 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen //endregion + + public FrozenPigment getPigment() { + if (pigment != null) + return pigment; + if (executionState != null && executionState.casterPigment != null) + return executionState.casterPigment; + return FrozenPigment.DEFAULT.get(); + } + + public @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment) { + this.pigment = pigment; + return this.pigment; + } + @Override protected void saveModData(CompoundTag tag) { if (this.executionState != null) { @@ -278,6 +297,8 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen this.displayItem.save(itemTag); tag.put(TAG_ERROR_DISPLAY, itemTag); } + if (this.pigment != null) + tag.put(TAG_PIGMENT, this.pigment.serializeToNBT()); } @Override @@ -302,6 +323,8 @@ public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implemen this.displayMsg = null; this.displayItem = null; } + if (tag.contains(TAG_PIGMENT, Tag.TAG_COMPOUND)) + this.pigment = FrozenPigment.fromNBT(tag.getCompound(TAG_PIGMENT)); } public void applyScryingLensOverlay(List> lines, diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java index c0857ed0..7918d908 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java @@ -37,7 +37,7 @@ public class CircleExecutionState { TAG_ENTERED_FROM = "entered_from", TAG_IMAGE = "image", TAG_CASTER = "caster", - TAG_COLORIZER = "colorizer"; + TAG_PIGMENT = "pigment"; public final BlockPos impetusPos; public final Direction impetusDir; @@ -48,14 +48,14 @@ public class CircleExecutionState { public Direction enteredFrom; public CastingImage currentImage; public @Nullable UUID caster; - public FrozenPigment colorizer; + public @Nullable FrozenPigment casterPigment; public final AABB bounds; protected CircleExecutionState(BlockPos impetusPos, Direction impetusDir, Set knownPositions, List reachedPositions, BlockPos currentPos, Direction enteredFrom, - CastingImage currentImage, @Nullable UUID caster, FrozenPigment colorizer) { + CastingImage currentImage, @Nullable UUID caster, @Nullable FrozenPigment casterPigment) { this.impetusPos = impetusPos; this.impetusDir = impetusDir; this.knownPositions = knownPositions; @@ -64,7 +64,7 @@ public class CircleExecutionState { this.enteredFrom = enteredFrom; this.currentImage = currentImage; this.caster = caster; - this.colorizer = colorizer; + this.casterPigment = casterPigment; this.bounds = BlockEntityAbstractImpetus.getBounds(new ArrayList<>(this.knownPositions)); } @@ -133,10 +133,9 @@ public class CircleExecutionState { reachedPositions.add(impetus.getBlockPos()); var start = seenGoodPositions.get(0); - FrozenPigment colorizer; + FrozenPigment colorizer = null; UUID casterUUID; if (caster == null) { - colorizer = FrozenPigment.DEFAULT.get(); casterUUID = null; } else { colorizer = HexAPI.instance().getColorizer(caster); @@ -172,7 +171,8 @@ public class CircleExecutionState { if (this.caster != null) out.putUUID(TAG_CASTER, this.caster); - out.put(TAG_COLORIZER, this.colorizer.serializeToNBT()); + if (this.casterPigment != null) + out.put(TAG_PIGMENT, this.casterPigment.serializeToNBT()); return out; } @@ -200,10 +200,12 @@ public class CircleExecutionState { if (nbt.hasUUID(TAG_CASTER)) caster = nbt.getUUID(TAG_CASTER); - FrozenPigment colorizer = FrozenPigment.fromNBT(nbt.getCompound(TAG_COLORIZER)); + FrozenPigment pigment = null; + if (nbt.contains(TAG_PIGMENT, Tag.TAG_COMPOUND)) + pigment = FrozenPigment.fromNBT(nbt.getCompound(TAG_PIGMENT)); return new CircleExecutionState(startPos, startDir, knownPositions, reachedPositions, currentPos, - enteredFrom, image, caster, colorizer); + enteredFrom, image, caster, pigment); } /** diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java index 5845dddf..39c07728 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java @@ -106,7 +106,7 @@ public interface ICircleComponent { if (impetus == null || impetus.getExecutionState() == null) colorizer = new FrozenPigment(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.RED)), activator); else - colorizer = impetus.getExecutionState().colorizer; + colorizer = impetus.getPigment(); if (bs.getBlock() instanceof BlockCircleComponent bcc) { var outDir = bcc.normalDir(pos, bs, world); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java index bf6323d3..0bd75353 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java @@ -291,6 +291,8 @@ public abstract class CastingEnvironment { public abstract FrozenPigment getColorizer(); + public abstract @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment); + public abstract void produceParticles(ParticleSpray particles, FrozenPigment colorizer); public abstract void printMessage(Component message); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java index 7df1b3d9..64fcd7aa 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java @@ -9,8 +9,6 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment; import at.petrak.hexcasting.api.casting.eval.MishapEnvironment; import at.petrak.hexcasting.api.casting.eval.sideeffects.OperatorSideEffect; import at.petrak.hexcasting.api.pigment.FrozenPigment; -import at.petrak.hexcasting.common.lib.HexItems; -import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; @@ -147,27 +145,23 @@ public class CircleCastEnv extends CastingEnvironment { @Override public FrozenPigment getColorizer() { - var out = this.getColorizerFromImpetus(); - if (out != null) - return out; - - // TODO: colouriser from an adjacent inventory also? - return new FrozenPigment(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.PURPLE)), Util.NIL_UUID); - } - - private @Nullable FrozenPigment getColorizerFromImpetus() { var impetus = this.getImpetus(); if (impetus == null) - return null; - var state = impetus.getExecutionState(); - if (state == null) - return null; - return state.colorizer; + return FrozenPigment.DEFAULT.get(); + return impetus.getPigment(); } @Override - public void produceParticles(ParticleSpray particles, FrozenPigment colorizer) { - particles.sprayParticles(this.world, colorizer); + public @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment) { + var impetus = this.getImpetus(); + if (impetus == null) + return null; + return impetus.setPigment(pigment); + } + + @Override + public void produceParticles(ParticleSpray particles, FrozenPigment pigment) { + particles.sprayParticles(this.world, pigment); } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java index ff22daad..5e20b225 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java @@ -15,6 +15,7 @@ import at.petrak.hexcasting.api.mod.HexStatistics; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.api.utils.MediaHelper; +import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; @@ -188,6 +189,13 @@ public abstract class PlayerBasedCastEnv extends CastingEnvironment { return advs.getOrStartProgress(adv).isDone(); } + @Override + public @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment) { + IXplatAbstractions.INSTANCE.setColorizer(caster, pigment); + + return null; + } + @Override public void produceParticles(ParticleSpray particles, FrozenPigment colorizer) { particles.sprayParticles(this.world, colorizer); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt index 4ce80192..ecc7ca8b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt @@ -16,7 +16,7 @@ class MishapOthersName(val confidant: Player) : Mishap() { dyeColor(DyeColor.BLACK) override fun execute(ctx: CastingEnvironment, errorCtx: Context, stack: MutableList) { - val seconds = if (this.confidant == ctx.caster) 5 else 60; + val seconds = if (this.confidant == ctx.caster) 5 else 60 ctx.mishapEnvironment.blind(seconds * 20) } @@ -49,7 +49,7 @@ class MishapOthersName(val confidant: Player) : Mishap() { } @JvmStatic - fun getTrueNameFromArgs(datums: List, caster: Player): Player? { + fun getTrueNameFromArgs(datums: List, caster: Player?): Player? { return datums.firstNotNullOfOrNull { getTrueNameFromDatum(it, caster) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt index 787f6865..b52345c3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt @@ -8,6 +8,7 @@ import at.petrak.hexcasting.api.casting.mishaps.MishapBadOffhandItem import at.petrak.hexcasting.api.misc.MediaConstants import at.petrak.hexcasting.api.pigment.FrozenPigment import at.petrak.hexcasting.xplat.IXplatAbstractions +import net.minecraft.Util import net.minecraft.world.item.ItemStack object OpColorize : SpellAction { @@ -38,13 +39,8 @@ object OpColorize : SpellAction { private data class Spell(val stack: ItemStack) : RenderedSpell { override fun cast(ctx: CastingEnvironment) { val copy = stack.copy() - val caster = ctx.caster - if (caster != null && ctx.withdrawItem(copy::sameItem, 1, true)) { - IXplatAbstractions.INSTANCE.setColorizer( - ctx.caster, - FrozenPigment(copy, caster.uuid) - ) - } + if (ctx.withdrawItem(copy::sameItem, 1, true)) + ctx.setPigment(FrozenPigment(copy, ctx.caster?.uuid ?: Util.NIL_UUID)) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt index e2e6bf06..884ccec7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt @@ -51,7 +51,7 @@ class OpConjureBlock(val light: Boolean) : SpellAction { if (worldState.canBeReplaced(placeContext)) { val block = if (this.light) HexBlocks.CONJURED_LIGHT else HexBlocks.CONJURED_BLOCK - if (ctx.caster != null && !IXplatAbstractions.INSTANCE.isPlacingAllowed(ctx.world, pos, ItemStack(block), ctx.caster)) + if (!IXplatAbstractions.INSTANCE.isPlacingAllowed(ctx.world, pos, ItemStack(block), ctx.caster)) return val state = block.getStateForPlacement(placeContext) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt index cdc9939e..f4651155 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt @@ -53,7 +53,7 @@ class OpMakePackagedSpell(val itemType: T, val cost: Int) : ) } - val trueName = ctx.caster?.let { MishapOthersName.getTrueNameFromArgs(patterns, it) } + val trueName = MishapOthersName.getTrueNameFromArgs(patterns, ctx.caster) if (trueName != null) throw MishapOthersName(trueName) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt index 7dd0093e..850de5a1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt @@ -35,14 +35,9 @@ object OpTheOnlyReasonAnyoneDownloadedPsi : SpellAction { private data class Spell(val pos: BlockPos) : RenderedSpell { override fun cast(ctx: CastingEnvironment) { - val caster = ctx.caster ?: return // TODO: fix! - // https://github.com/VazkiiMods/Psi/blob/master/src/main/java/vazkii/psi/common/spell/trick/PieceTrickOvergrow.java val hit = BlockHitResult(Vec3.ZERO, Direction.UP, pos, false) - val save: ItemStack = caster.getItemInHand(InteractionHand.MAIN_HAND) - caster.setItemInHand(InteractionHand.MAIN_HAND, ItemStack(Items.BONE_MEAL)) - val fakeContext = UseOnContext(caster, InteractionHand.MAIN_HAND, hit) - caster.setItemInHand(InteractionHand.MAIN_HAND, save) + val fakeContext = UseOnContext(ctx.world, ctx.caster, InteractionHand.MAIN_HAND, ItemStack(Items.BONE_MEAL), hit) Items.BONE_MEAL.useOn(fakeContext) } } From 99e8228610e02532a945716a9e9304cb5fdaba7a Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Thu, 15 Jun 2023 00:44:29 +1000 Subject: [PATCH 4/6] renamed Colorizers to Pigments everywhere that wouldn't be tedious (i.e. not in ids, or lang files). (cherry picked from commit d311390281213bd45165af6f504d7436fb989c44) --- .../{ADColorizer.java => ADPigment.java} | 2 +- .../api/casting/circles/ICircleComponent.java | 4 +- .../api/casting/eval/CastingEnvironment.java | 2 +- .../api/casting/eval/env/CircleCastEnv.java | 2 +- .../casting/eval/env/PackagedItemCastEnv.java | 2 +- .../casting/eval/env/PlayerBasedCastEnv.java | 4 +- .../api/casting/eval/env/StaffCastEnv.java | 4 +- .../eval/sideeffects/OperatorSideEffect.kt | 4 +- .../hexcasting/api/casting/mishaps/Mishap.kt | 2 +- .../{ColorizerItem.java => PigmentItem.java} | 2 +- .../hexcasting/api/pigment/ColorProvider.java | 4 +- .../hexcasting/api/pigment/FrozenPigment.java | 2 +- .../client/render/HexAdditionalRenderers.java | 2 +- .../casting/actions/spells/OpColorize.kt | 4 +- .../casting/actions/spells/OpConjureBlock.kt | 4 +- .../common/casting/actions/spells/OpFlight.kt | 10 ++--- .../actions/spells/OpMakePackagedSpell.kt | 2 +- .../casting/actions/spells/great/OpAltiora.kt | 2 +- .../hexcasting/common/impl/HexAPIImpl.java | 2 +- .../common/items/magic/ItemPackagedHex.java | 2 +- .../ItemAmethystAndCopperPigment.java} | 12 ++--- .../ItemDyePigment.java} | 8 ++-- .../ItemPridePigment.java} | 12 ++--- .../ItemUUIDPigment.java} | 12 ++--- .../hexcasting/common/lib/HexItems.java | 28 ++++++------ .../datagen/recipe/HexplatRecipes.java | 44 +++++++++---------- .../hexcasting/xplat/IXplatAbstractions.java | 8 ++-- .../fabric/cc/CCFavoredColorizer.java | 41 ----------------- .../fabric/cc/CCFavoredPigment.java | 44 +++++++++++++++++++ .../fabric/cc/HexCardinalComponents.java | 12 ++--- .../fabric/cc/adimpl/CCHexHolder.java | 2 +- .../{CCColorizer.java => CCPigment.java} | 20 ++++----- .../fabric/xplat/FabricXplatImpl.java | 24 +++++----- .../hexcasting/forge/cap/CapSyncers.java | 12 ++--- .../forge/cap/ForgeCapabilityHandler.java | 6 +-- .../hexcasting/forge/cap/HexCapabilities.java | 2 +- ...ItemColorizer.java => CapItemPigment.java} | 8 ++-- .../forge/datagen/xplat/HexItemModels.java | 12 ++--- .../forge/network/ForgePacketHandler.java | 4 +- ...pdateAck.java => MsgPigmentUpdateAck.java} | 10 ++--- .../forge/xplat/ForgeXplatImpl.java | 29 +++++++----- 41 files changed, 211 insertions(+), 201 deletions(-) rename Common/src/main/java/at/petrak/hexcasting/api/addldata/{ADColorizer.java => ADPigment.java} (97%) rename Common/src/main/java/at/petrak/hexcasting/api/item/{ColorizerItem.java => PigmentItem.java} (94%) rename Common/src/main/java/at/petrak/hexcasting/common/items/{colorizer/ItemAmethystAndCopperColorizer.java => pigment/ItemAmethystAndCopperPigment.java} (66%) rename Common/src/main/java/at/petrak/hexcasting/common/items/{colorizer/ItemDyeColorizer.java => pigment/ItemDyePigment.java} (76%) rename Common/src/main/java/at/petrak/hexcasting/common/items/{colorizer/ItemPrideColorizer.java => pigment/ItemPridePigment.java} (84%) rename Common/src/main/java/at/petrak/hexcasting/common/items/{colorizer/ItemUUIDColorizer.java => pigment/ItemUUIDPigment.java} (85%) delete mode 100644 Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredColorizer.java create mode 100644 Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java rename Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/{CCColorizer.java => CCPigment.java} (52%) rename Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/{CapItemColorizer.java => CapItemPigment.java} (56%) rename Forge/src/main/java/at/petrak/hexcasting/forge/network/{MsgColorizerUpdateAck.java => MsgPigmentUpdateAck.java} (77%) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADPigment.java similarity index 97% rename from Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java rename to Common/src/main/java/at/petrak/hexcasting/api/addldata/ADPigment.java index 593dba50..86984439 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADPigment.java @@ -7,7 +7,7 @@ import net.minecraft.world.phys.Vec3; import java.util.UUID; -public interface ADColorizer { +public interface ADPigment { ColorProvider provideColor(UUID owner); static int morphBetweenColors(int[] colors, Vec3 gradientDir, float time, Vec3 position) { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java index 39c07728..66e06b4d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/ICircleComponent.java @@ -104,7 +104,7 @@ public interface ICircleComponent { activator = impetus.getExecutionState().caster; if (impetus == null || impetus.getExecutionState() == null) - colorizer = new FrozenPigment(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.RED)), activator); + colorizer = new FrozenPigment(new ItemStack(HexItems.DYE_PIGMENTS.get(DyeColor.RED)), activator); else colorizer = impetus.getPigment(); @@ -123,7 +123,7 @@ public interface ICircleComponent { var spray = new ParticleSpray(vpos, vecOutDir.scale(success ? 1.0 : 1.5), success ? 0.1 : 0.5, Mth.PI / (success ? 4 : 2), success ? 30 : 100); spray.sprayParticles(serverLevel, - success ? colorizer : new FrozenPigment(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.RED)), + success ? colorizer : new FrozenPigment(new ItemStack(HexItems.DYE_PIGMENTS.get(DyeColor.RED)), activator)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java index 0bd75353..8944b200 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java @@ -289,7 +289,7 @@ public abstract class CastingEnvironment { EXTRACTION, } - public abstract FrozenPigment getColorizer(); + public abstract FrozenPigment getPigment(); public abstract @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java index 64fcd7aa..a68aae8a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java @@ -144,7 +144,7 @@ public class CircleCastEnv extends CastingEnvironment { } @Override - public FrozenPigment getColorizer() { + public FrozenPigment getPigment() { var impetus = this.getImpetus(); if (impetus == null) return FrozenPigment.DEFAULT.get(); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PackagedItemCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PackagedItemCastEnv.java index 1b4011c1..984a0889 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PackagedItemCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PackagedItemCastEnv.java @@ -53,7 +53,7 @@ public class PackagedItemCastEnv extends PlayerBasedCastEnv { } @Override - public FrozenPigment getColorizer() { + public FrozenPigment getPigment() { var casterStack = this.caster.getItemInHand(this.castingHand); var casterHexHolder = IXplatAbstractions.INSTANCE.findHexHolder(casterStack); return casterHexHolder.getPigment(); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java index 5e20b225..6494d2fb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java @@ -191,9 +191,7 @@ public abstract class PlayerBasedCastEnv extends CastingEnvironment { @Override public @Nullable FrozenPigment setPigment(@Nullable FrozenPigment pigment) { - IXplatAbstractions.INSTANCE.setColorizer(caster, pigment); - - return null; + return IXplatAbstractions.INSTANCE.setPigment(caster, pigment); } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java index 05310d46..38b6bfda 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java @@ -63,7 +63,7 @@ public class StaffCastEnv extends PlayerBasedCastEnv { } @Override - public FrozenPigment getColorizer() { + public FrozenPigment getPigment() { return HexAPI.instance().getColorizer(this.caster); } @@ -115,7 +115,7 @@ public class StaffCastEnv extends PlayerBasedCastEnv { // Somehow we lost spraying particles on each new pattern, so do it here // this also nicely prevents particle spam on trinkets new ParticleSpray(sender.position(), new Vec3(0.0, 1.5, 0.0), 0.4, Math.PI / 3, 30) - .sprayParticles(sender.getLevel(), IXplatAbstractions.INSTANCE.getColorizer(sender)); + .sprayParticles(sender.getLevel(), IXplatAbstractions.INSTANCE.getPigment(sender)); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/sideeffects/OperatorSideEffect.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/sideeffects/OperatorSideEffect.kt index edd61016..13f317c7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/sideeffects/OperatorSideEffect.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/sideeffects/OperatorSideEffect.kt @@ -56,7 +56,7 @@ sealed class OperatorSideEffect { data class Particles(val spray: ParticleSpray) : OperatorSideEffect() { override fun performEffect(harness: CastingVM): Boolean { - harness.env.produceParticles(this.spray, harness.env.colorizer) + harness.env.produceParticles(this.spray, harness.env.pigment) // this.spray.sprayParticles(harness.env.world, harness.env.colorizer) return false @@ -71,7 +71,7 @@ sealed class OperatorSideEffect { spray.sprayParticles( harness.env.world, FrozenPigment( - ItemStack(HexItems.DYE_COLORIZERS[DyeColor.RED]!!), + ItemStack(HexItems.DYE_PIGMENTS[DyeColor.RED]!!), Util.NIL_UUID ) ) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/Mishap.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/Mishap.kt index 58523a4d..f7e8b1cc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/Mishap.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/Mishap.kt @@ -61,7 +61,7 @@ abstract class Mishap : Throwable() { protected fun dyeColor(color: DyeColor): FrozenPigment = FrozenPigment( - ItemStack(HexItems.DYE_COLORIZERS[color]!!), + ItemStack(HexItems.DYE_PIGMENTS[color]!!), Util.NIL_UUID ) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java b/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java similarity index 94% rename from Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java rename to Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java index 9a8b8098..06829c4b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java @@ -13,6 +13,6 @@ import java.util.UUID; * and the appropriate cap/CC will be attached. */ @ApiStatus.OverrideOnly -public interface ColorizerItem { +public interface PigmentItem { ColorProvider provideColor(ItemStack stack, UUID owner); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/pigment/ColorProvider.java b/Common/src/main/java/at/petrak/hexcasting/api/pigment/ColorProvider.java index 5eddc0fb..8c0611db 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/pigment/ColorProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/pigment/ColorProvider.java @@ -1,6 +1,6 @@ package at.petrak.hexcasting.api.pigment; -import at.petrak.hexcasting.api.addldata.ADColorizer; +import at.petrak.hexcasting.api.addldata.ADPigment; import net.minecraft.util.FastColor; import net.minecraft.world.phys.Vec3; @@ -30,7 +30,7 @@ public abstract class ColorProvider { double luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 0xFF; // Standard relative luminance calculation if (luminance < 0.05) { - int rawMod = ADColorizer.morphBetweenColors(MINIMUM_LUMINANCE_COLOR_WHEEL, new Vec3(0.1, 0.1, 0.1), + int rawMod = ADPigment.morphBetweenColors(MINIMUM_LUMINANCE_COLOR_WHEEL, new Vec3(0.1, 0.1, 0.1), time / 20 / 20, position); r += FastColor.ARGB32.red(rawMod); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java b/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java index 7cb41dbe..f5cd478e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java @@ -21,7 +21,7 @@ public record FrozenPigment(ItemStack item, UUID owner) { public static final String TAG_OWNER = "owner"; public static final Supplier DEFAULT = - () -> new FrozenPigment(new ItemStack(HexItems.DEFAULT_COLORIZER), Util.NIL_UUID); + () -> new FrozenPigment(new ItemStack(HexItems.DEFAULT_PIGMENT), Util.NIL_UUID); public CompoundTag serializeToNBT() { var out = new CompoundTag(); diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java b/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java index c1998479..c654e569 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java @@ -83,7 +83,7 @@ public class HexAdditionalRenderers { RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); RenderSystem.lineWidth(5f); - var colorizer = IXplatAbstractions.INSTANCE.getColorizer(owner); + var colorizer = IXplatAbstractions.INSTANCE.getPigment(owner); var colProvider = colorizer.getColorProvider(); BiConsumer v = (l, r) -> { int lcolor = colProvider.getColor(time, new Vec3(l[0], l[1], l[2])), diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt index b52345c3..2346ee49 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt @@ -18,10 +18,10 @@ object OpColorize : SpellAction { args: List, ctx: CastingEnvironment ): SpellAction.Result { - val (handStack, hand) = ctx.getHeldItemToOperateOn(IXplatAbstractions.INSTANCE::isColorizer) + val (handStack, hand) = ctx.getHeldItemToOperateOn(IXplatAbstractions.INSTANCE::isPigment) ?: throw MishapBadOffhandItem.of(ItemStack.EMPTY, null, "colorizer") // TODO: hack - if (!IXplatAbstractions.INSTANCE.isColorizer(handStack)) { + if (!IXplatAbstractions.INSTANCE.isPigment(handStack)) { throw MishapBadOffhandItem.of( handStack, hand, diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt index 884ccec7..6dbec7ea 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpConjureBlock.kt @@ -58,10 +58,10 @@ class OpConjureBlock(val light: Boolean) : SpellAction { if (state != null) { ctx.world.setBlock(pos, state, 5) - val colorizer = ctx.colorizer + val pigment = ctx.pigment if (ctx.world.getBlockState(pos).block is BlockConjured) { - BlockConjured.setColor(ctx.world, pos, colorizer) + BlockConjured.setColor(ctx.world, pos, pigment) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt index 9dfb5365..2e467264 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt @@ -110,8 +110,8 @@ class OpFlight(val type: Type) : SpellAction { } player.level.playSound(null, player.x, player.y, player.z, HexSounds.FLIGHT_FINISH, SoundSource.PLAYERS, 2f, 1f) val superDangerSpray = ParticleSpray(player.position(), Vec3(0.0, 1.0, 0.0), Math.PI, 0.4, count = 20) - superDangerSpray.sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_COLORIZERS[DyeColor.RED]!!), Util.NIL_UUID)) - superDangerSpray.sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_COLORIZERS[DyeColor.BLACK]!!), Util.NIL_UUID)) + superDangerSpray.sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_PIGMENTS[DyeColor.RED]!!), Util.NIL_UUID)) + superDangerSpray.sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_PIGMENTS[DyeColor.BLACK]!!), Util.NIL_UUID)) } else { if (!player.abilities.mayfly) { player.abilities.mayfly = true @@ -136,16 +136,16 @@ class OpFlight(val type: Type) : SpellAction { val dangerParticleCount = (particleCount * danger).roundToInt() val okParticleCount = particleCount - dangerParticleCount val oneDangerParticleCount = Mth.ceil(dangerParticleCount / 2.0) - val color = IXplatAbstractions.INSTANCE.getColorizer(player) + val color = IXplatAbstractions.INSTANCE.getPigment(player) // TODO: have the particles go in the opposite direction of the velocity? ParticleSpray(player.position(), Vec3(0.0, -0.6, 0.0), 0.6, Math.PI * 0.3, count = okParticleCount) .sprayParticles(player.getLevel(), color) val dangerSpray = ParticleSpray(player.position(), Vec3(0.0, 1.0, 0.0), 0.3, Math.PI * 0.75, count = 0) dangerSpray.copy(count = oneDangerParticleCount) - .sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_COLORIZERS[DyeColor.BLACK]!!), Util.NIL_UUID)) + .sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_PIGMENTS[DyeColor.BLACK]!!), Util.NIL_UUID)) dangerSpray.copy(count = oneDangerParticleCount) - .sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_COLORIZERS[DyeColor.RED]!!), Util.NIL_UUID)) + .sprayParticles(player.getLevel(), FrozenPigment(ItemStack(HexItems.DYE_PIGMENTS[DyeColor.RED]!!), Util.NIL_UUID)) if (player.level.random.nextFloat() < 0.02) player.level.playSound(null, player.x, player.y, player.z, HexSounds.FLIGHT_AMBIENCE, SoundSource.PLAYERS, 0.2f, 1f) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt index f4651155..39a91749 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt @@ -74,7 +74,7 @@ class OpMakePackagedSpell(val itemType: T, val cost: Int) : val entityStack = itemEntity.item.copy() val mediamount = extractMedia(entityStack, drainForBatteries = true) if (mediamount > 0) { - hexHolder.writeHex(patterns, ctx.colorizer, mediamount) + hexHolder.writeHex(patterns, ctx.pigment, mediamount) } itemEntity.item = entityStack diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt index 3d70ed29..963dab56 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt @@ -58,7 +58,7 @@ object OpAltiora : SpellAction { if (player.level.random.nextFloat() < 0.02) player.level.playSound(null, player.x, player.y, player.z, HexSounds.FLIGHT_AMBIENCE, SoundSource.PLAYERS, 0.2f, 1f) - val color = IXplatAbstractions.INSTANCE.getColorizer(player) + val color = IXplatAbstractions.INSTANCE.getPigment(player) ParticleSpray(player.position(), Vec3(0.0, -0.2, 0.0), 0.4, Math.PI * 0.5, count = 3) .sprayParticles(player.getLevel(), color) } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java b/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java index 6d407b8a..ff0c17c5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java @@ -92,7 +92,7 @@ public class HexAPIImpl implements HexAPI { @Override public FrozenPigment getColorizer(Player player) { - return IXplatAbstractions.INSTANCE.getColorizer(player); + return IXplatAbstractions.INSTANCE.getPigment(player); } ArmorMaterial ARMOR_MATERIAL = new ArmorMaterial() { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java index 157556ae..38dce759 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java @@ -144,7 +144,7 @@ public abstract class ItemPackagedHex extends ItemMediaHolder implements HexHold // Somehow we lost spraying particles on each new pattern, so do it here // this also nicely prevents particle spam on trinkets new ParticleSpray(player.position(), new Vec3(0.0, 1.5, 0.0), 0.4, Math.PI / 3, 30) - .sprayParticles(sPlayer.getLevel(), ctx.getColorizer()); + .sprayParticles(sPlayer.getLevel(), ctx.getPigment()); } var sound = ctx.getSound().sound(); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemAmethystAndCopperColorizer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemAmethystAndCopperPigment.java similarity index 66% rename from Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemAmethystAndCopperColorizer.java rename to Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemAmethystAndCopperPigment.java index b48ffdae..a41b0ccd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemAmethystAndCopperColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemAmethystAndCopperPigment.java @@ -1,7 +1,7 @@ -package at.petrak.hexcasting.common.items.colorizer; +package at.petrak.hexcasting.common.items.pigment; -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.addldata.ADPigment; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -9,8 +9,8 @@ import net.minecraft.world.phys.Vec3; import java.util.UUID; -public class ItemAmethystAndCopperColorizer extends Item implements ColorizerItem { - public ItemAmethystAndCopperColorizer(Properties pProperties) { +public class ItemAmethystAndCopperPigment extends Item implements PigmentItem { + public ItemAmethystAndCopperPigment(Properties pProperties) { super(pProperties); } @@ -32,7 +32,7 @@ public class ItemAmethystAndCopperColorizer extends Item implements ColorizerIte @Override protected int getRawColor(float time, Vec3 position) { - return ADColorizer.morphBetweenColors(COLORS, new Vec3(0.1, 0.1, 0.1), time / 600, position); + return ADPigment.morphBetweenColors(COLORS, new Vec3(0.1, 0.1, 0.1), time / 600, position); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemDyeColorizer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemDyePigment.java similarity index 76% rename from Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemDyeColorizer.java rename to Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemDyePigment.java index e3f3a40c..0259a03d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemDyeColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemDyePigment.java @@ -1,6 +1,6 @@ -package at.petrak.hexcasting.common.items.colorizer; +package at.petrak.hexcasting.common.items.pigment; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; @@ -9,10 +9,10 @@ import net.minecraft.world.phys.Vec3; import java.util.UUID; -public class ItemDyeColorizer extends Item implements ColorizerItem { +public class ItemDyePigment extends Item implements PigmentItem { private final DyeColor dyeColor; - public ItemDyeColorizer(DyeColor dyeColor, Properties pProperties) { + public ItemDyePigment(DyeColor dyeColor, Properties pProperties) { super(pProperties); this.dyeColor = dyeColor; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemPridePigment.java similarity index 84% rename from Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java rename to Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemPridePigment.java index 8b94d689..ebd8225c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemPrideColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemPridePigment.java @@ -1,7 +1,7 @@ -package at.petrak.hexcasting.common.items.colorizer; +package at.petrak.hexcasting.common.items.pigment; -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.addldata.ADPigment; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -10,7 +10,7 @@ import net.minecraft.world.phys.Vec3; import java.util.Locale; import java.util.UUID; -public class ItemPrideColorizer extends Item implements ColorizerItem { +public class ItemPridePigment extends Item implements PigmentItem { public enum Type { AGENDER(new int[]{0x16a10c, 0xffffff, 0x7a8081, 0x302f30}), AROACE(new int[]{0x7210bc, 0xebf367, 0xffffff, 0x82dceb, 0x2f4dd8}), @@ -47,7 +47,7 @@ public class ItemPrideColorizer extends Item implements ColorizerItem { public final Type type; - public ItemPrideColorizer(Type type, Properties pProperties) { + public ItemPridePigment(Type type, Properties pProperties) { super(pProperties); this.type = type; } @@ -62,7 +62,7 @@ public class ItemPrideColorizer extends Item implements ColorizerItem { protected class MyColorProvider extends ColorProvider { @Override protected int getRawColor(float time, Vec3 position) { - return ADColorizer.morphBetweenColors(type.colors, new Vec3(0.1, 0.1, 0.1), time / 400, position); + return ADPigment.morphBetweenColors(type.colors, new Vec3(0.1, 0.1, 0.1), time / 400, position); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemUUIDColorizer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java similarity index 85% rename from Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemUUIDColorizer.java rename to Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java index 5e403e7f..c895177f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/colorizer/ItemUUIDColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java @@ -1,7 +1,7 @@ -package at.petrak.hexcasting.common.items.colorizer; +package at.petrak.hexcasting.common.items.pigment; -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.addldata.ADPigment; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import at.petrak.paucal.api.PaucalAPI; import com.google.gson.JsonElement; @@ -14,8 +14,8 @@ import java.awt.*; import java.util.Random; import java.util.UUID; -public class ItemUUIDColorizer extends Item implements ColorizerItem { - public ItemUUIDColorizer(Properties pProperties) { +public class ItemUUIDPigment extends Item implements PigmentItem { + public ItemUUIDPigment(Properties pProperties) { super(pProperties); } @@ -67,7 +67,7 @@ public class ItemUUIDColorizer extends Item implements ColorizerItem { @Override protected int getRawColor(float time, Vec3 position) { - return ADColorizer.morphBetweenColors(this.colors, new Vec3(0.1, 0.1, 0.1), time / 400, position); + return ADPigment.morphBetweenColors(this.colors, new Vec3(0.1, 0.1, 0.1), time / 400, position); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java index 82c7c919..f0aac137 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java @@ -4,10 +4,10 @@ import at.petrak.hexcasting.common.items.ItemJewelerHammer; import at.petrak.hexcasting.common.items.ItemLens; import at.petrak.hexcasting.common.items.ItemLoreFragment; import at.petrak.hexcasting.common.items.ItemStaff; -import at.petrak.hexcasting.common.items.colorizer.ItemAmethystAndCopperColorizer; -import at.petrak.hexcasting.common.items.colorizer.ItemDyeColorizer; -import at.petrak.hexcasting.common.items.colorizer.ItemPrideColorizer; -import at.petrak.hexcasting.common.items.colorizer.ItemUUIDColorizer; +import at.petrak.hexcasting.common.items.pigment.ItemAmethystAndCopperPigment; +import at.petrak.hexcasting.common.items.pigment.ItemDyePigment; +import at.petrak.hexcasting.common.items.pigment.ItemPridePigment; +import at.petrak.hexcasting.common.items.pigment.ItemUUIDPigment; import at.petrak.hexcasting.common.items.magic.*; import at.petrak.hexcasting.common.items.storage.*; import at.petrak.hexcasting.xplat.IXplatAbstractions; @@ -79,25 +79,25 @@ public class HexItems { public static final ItemMediaBattery BATTERY = make("battery", new ItemMediaBattery(unstackable())); - public static final EnumMap DYE_COLORIZERS = Util.make(() -> { - var out = new EnumMap(DyeColor.class); + public static final EnumMap DYE_PIGMENTS = Util.make(() -> { + var out = new EnumMap(DyeColor.class); for (var dye : DyeColor.values()) { - out.put(dye, make("dye_colorizer_" + dye.getName(), new ItemDyeColorizer(dye, unstackable()))); + out.put(dye, make("dye_colorizer_" + dye.getName(), new ItemDyePigment(dye, unstackable()))); } return out; }); - public static final EnumMap PRIDE_COLORIZERS = Util.make(() -> { - var out = new EnumMap(ItemPrideColorizer.Type.class); - for (var politicsInMyVidya : ItemPrideColorizer.Type.values()) { + public static final EnumMap PRIDE_PIGMENTS = Util.make(() -> { + var out = new EnumMap(ItemPridePigment.Type.class); + for (var politicsInMyVidya : ItemPridePigment.Type.values()) { out.put(politicsInMyVidya, make("pride_colorizer_" + politicsInMyVidya.getName(), - new ItemPrideColorizer(politicsInMyVidya, unstackable()))); + new ItemPridePigment(politicsInMyVidya, unstackable()))); } return out; }); - public static final Item UUID_COLORIZER = make("uuid_colorizer", new ItemUUIDColorizer(unstackable())); - public static final Item DEFAULT_COLORIZER = make("default_colorizer", - new ItemAmethystAndCopperColorizer(unstackable())); + public static final Item UUID_PIGMENT = make("uuid_colorizer", new ItemUUIDPigment(unstackable())); + public static final Item DEFAULT_PIGMENT = make("default_colorizer", + new ItemAmethystAndCopperPigment(unstackable())); // BUFF SANDVICH public static final Item SUBMARINE_SANDWICH = make("sub_sandwich", diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java index b7caa459..608dfd5b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java @@ -5,7 +5,7 @@ import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.blocks.decoration.BlockAkashicLog; import at.petrak.hexcasting.common.items.ItemStaff; -import at.petrak.hexcasting.common.items.colorizer.ItemPrideColorizer; +import at.petrak.hexcasting.common.items.pigment.ItemPridePigment; import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.recipe.SealThingsRecipe; @@ -161,7 +161,7 @@ public class HexplatRecipes extends PaucalRecipeProvider { .unlockedBy("has_item", hasItem(Items.AMETHYST_SHARD)).save(recipes); for (var dye : DyeColor.values()) { - var item = HexItems.DYE_COLORIZERS.get(dye); + var item = HexItems.DYE_PIGMENTS.get(dye); ShapedRecipeBuilder.shaped(item) .define('D', HexItems.AMETHYST_DUST) .define('C', DyeItem.byColor(dye)) @@ -171,30 +171,30 @@ public class HexplatRecipes extends PaucalRecipeProvider { .unlockedBy("has_item", hasItem(HexItems.AMETHYST_DUST)).save(recipes); } - gayRecipe(recipes, ItemPrideColorizer.Type.AGENDER, Ingredient.of(Items.GLASS)); - gayRecipe(recipes, ItemPrideColorizer.Type.AROACE, Ingredient.of(Items.WHEAT_SEEDS)); - gayRecipe(recipes, ItemPrideColorizer.Type.AROMANTIC, Ingredient.of(Items.ARROW)); - gayRecipe(recipes, ItemPrideColorizer.Type.ASEXUAL, Ingredient.of(Items.BREAD)); - gayRecipe(recipes, ItemPrideColorizer.Type.BISEXUAL, Ingredient.of(Items.WHEAT)); - gayRecipe(recipes, ItemPrideColorizer.Type.DEMIBOY, Ingredient.of(Items.RAW_IRON)); - gayRecipe(recipes, ItemPrideColorizer.Type.DEMIGIRL, Ingredient.of(Items.RAW_COPPER)); - gayRecipe(recipes, ItemPrideColorizer.Type.GAY, Ingredient.of(Items.STONE_BRICK_WALL)); - gayRecipe(recipes, ItemPrideColorizer.Type.GENDERFLUID, Ingredient.of(Items.WATER_BUCKET)); - gayRecipe(recipes, ItemPrideColorizer.Type.GENDERQUEER, Ingredient.of(Items.GLASS_BOTTLE)); - gayRecipe(recipes, ItemPrideColorizer.Type.INTERSEX, Ingredient.of(Items.AZALEA)); - gayRecipe(recipes, ItemPrideColorizer.Type.LESBIAN, Ingredient.of(Items.HONEYCOMB)); - gayRecipe(recipes, ItemPrideColorizer.Type.NONBINARY, Ingredient.of(Items.MOSS_BLOCK)); - gayRecipe(recipes, ItemPrideColorizer.Type.PANSEXUAL, ingredients.whenModIngredient( + gayRecipe(recipes, ItemPridePigment.Type.AGENDER, Ingredient.of(Items.GLASS)); + gayRecipe(recipes, ItemPridePigment.Type.AROACE, Ingredient.of(Items.WHEAT_SEEDS)); + gayRecipe(recipes, ItemPridePigment.Type.AROMANTIC, Ingredient.of(Items.ARROW)); + gayRecipe(recipes, ItemPridePigment.Type.ASEXUAL, Ingredient.of(Items.BREAD)); + gayRecipe(recipes, ItemPridePigment.Type.BISEXUAL, Ingredient.of(Items.WHEAT)); + gayRecipe(recipes, ItemPridePigment.Type.DEMIBOY, Ingredient.of(Items.RAW_IRON)); + gayRecipe(recipes, ItemPridePigment.Type.DEMIGIRL, Ingredient.of(Items.RAW_COPPER)); + gayRecipe(recipes, ItemPridePigment.Type.GAY, Ingredient.of(Items.STONE_BRICK_WALL)); + gayRecipe(recipes, ItemPridePigment.Type.GENDERFLUID, Ingredient.of(Items.WATER_BUCKET)); + gayRecipe(recipes, ItemPridePigment.Type.GENDERQUEER, Ingredient.of(Items.GLASS_BOTTLE)); + gayRecipe(recipes, ItemPridePigment.Type.INTERSEX, Ingredient.of(Items.AZALEA)); + gayRecipe(recipes, ItemPridePigment.Type.LESBIAN, Ingredient.of(Items.HONEYCOMB)); + gayRecipe(recipes, ItemPridePigment.Type.NONBINARY, Ingredient.of(Items.MOSS_BLOCK)); + gayRecipe(recipes, ItemPridePigment.Type.PANSEXUAL, ingredients.whenModIngredient( Ingredient.of(Items.CARROT), "farmersdelight", CompatIngredientValue.of("farmersdelight:skillet") )); - gayRecipe(recipes, ItemPrideColorizer.Type.PLURAL, Ingredient.of(Items.REPEATER)); - gayRecipe(recipes, ItemPrideColorizer.Type.TRANSGENDER, Ingredient.of(Items.EGG)); + gayRecipe(recipes, ItemPridePigment.Type.PLURAL, Ingredient.of(Items.REPEATER)); + gayRecipe(recipes, ItemPridePigment.Type.TRANSGENDER, Ingredient.of(Items.EGG)); - ring(HexItems.UUID_COLORIZER, 1, HexItems.AMETHYST_DUST, Items.AMETHYST_SHARD) + ring(HexItems.UUID_PIGMENT, 1, HexItems.AMETHYST_DUST, Items.AMETHYST_SHARD) .unlockedBy("has_item", hasItem(HexItems.AMETHYST_DUST)).save(recipes); - ring(HexItems.DEFAULT_COLORIZER, 1, HexItems.AMETHYST_DUST, Items.COPPER_INGOT) + ring(HexItems.DEFAULT_PIGMENT, 1, HexItems.AMETHYST_DUST, Items.COPPER_INGOT) .unlockedBy("has_item", hasItem(HexItems.AMETHYST_DUST)).save(recipes); ShapedRecipeBuilder.shaped(HexItems.SCROLL_SMOL) @@ -526,8 +526,8 @@ public class HexplatRecipes extends PaucalRecipeProvider { .save(recipes); } - private void gayRecipe(Consumer recipes, ItemPrideColorizer.Type type, Ingredient material) { - var colorizer = HexItems.PRIDE_COLORIZERS.get(type); + private void gayRecipe(Consumer recipes, ItemPridePigment.Type type, Ingredient material) { + var colorizer = HexItems.PRIDE_PIGMENTS.get(type); ShapedRecipeBuilder.shaped(colorizer) .define('D', HexItems.AMETHYST_DUST) .define('C', material) diff --git a/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java index 89fb92ec..1e544ab4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java +++ b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java @@ -81,7 +81,7 @@ public interface IXplatAbstractions { boolean isBrainswept(Mob mob); - void setColorizer(Player target, FrozenPigment colorizer); + @Nullable FrozenPigment setPigment(Player target, @Nullable FrozenPigment colorizer); void setSentinel(Player target, @Nullable Sentinel sentinel); @@ -97,7 +97,7 @@ public interface IXplatAbstractions { @Nullable AltioraAbility getAltiora(Player player); - FrozenPigment getColorizer(Player player); + FrozenPigment getPigment(Player player); @Nullable Sentinel getSentinel(Player player); @@ -126,9 +126,9 @@ public interface IXplatAbstractions { // coooollooorrrs - boolean isColorizer(ItemStack stack); + boolean isPigment(ItemStack stack); - ColorProvider getColorProvider(FrozenPigment colorizer); + ColorProvider getColorProvider(FrozenPigment pigment); // Items diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredColorizer.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredColorizer.java deleted file mode 100644 index 67fa03e1..00000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredColorizer.java +++ /dev/null @@ -1,41 +0,0 @@ -package at.petrak.hexcasting.fabric.cc; - -import at.petrak.hexcasting.api.pigment.FrozenPigment; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.player.Player; - -/** - * Holds the colorizer item favored by the player - */ -public class CCFavoredColorizer implements Component, AutoSyncedComponent { - public static final String TAG_COLORIZER = "colorizer"; - - private final Player owner; - - public CCFavoredColorizer(Player owner) { - this.owner = owner; - } - - private FrozenPigment colorizer = FrozenPigment.DEFAULT.get(); - - public FrozenPigment getColorizer() { - return colorizer; - } - - public void setColorizer(FrozenPigment colorizer) { - this.colorizer = colorizer; - HexCardinalComponents.FAVORED_COLORIZER.sync(this.owner); - } - - @Override - public void readFromNbt(CompoundTag tag) { - this.colorizer = FrozenPigment.fromNBT(tag.getCompound(TAG_COLORIZER)); - } - - @Override - public void writeToNbt(CompoundTag tag) { - tag.put(TAG_COLORIZER, this.colorizer.serializeToNBT()); - } -} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java new file mode 100644 index 00000000..7eaf3b5b --- /dev/null +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java @@ -0,0 +1,44 @@ +package at.petrak.hexcasting.fabric.cc; + +import at.petrak.hexcasting.api.pigment.FrozenPigment; +import dev.onyxstudios.cca.api.v3.component.Component; +import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.Nullable; + +/** + * Holds the pigment item favored by the player + */ +public class CCFavoredPigment implements Component, AutoSyncedComponent { + public static final String TAG_PIGMENT = "pigment"; + + private final Player owner; + + public CCFavoredPigment(Player owner) { + this.owner = owner; + } + + private FrozenPigment pigment = FrozenPigment.DEFAULT.get(); + + public FrozenPigment getPigment() { + return pigment; + } + + public FrozenPigment setPigment(@Nullable FrozenPigment pigment) { + var old = this.pigment; + this.pigment = pigment != null ? pigment : FrozenPigment.DEFAULT.get(); + HexCardinalComponents.FAVORED_PIGMENT.sync(this.owner); + return old; + } + + @Override + public void readFromNbt(CompoundTag tag) { + this.pigment = FrozenPigment.fromNBT(tag.getCompound(TAG_PIGMENT)); + } + + @Override + public void writeToNbt(CompoundTag tag) { + tag.put(TAG_PIGMENT, this.pigment.serializeToNBT()); + } +} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java index fa10b385..06eb0ff1 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java @@ -33,8 +33,8 @@ public class HexCardinalComponents implements EntityComponentInitializer, ItemCo // entities public static final ComponentKey BRAINSWEPT = ComponentRegistry.getOrCreate(modLoc("brainswept"), CCBrainswept.class); - public static final ComponentKey FAVORED_COLORIZER = ComponentRegistry.getOrCreate( - modLoc("favored_colorizer"), CCFavoredColorizer.class); + public static final ComponentKey FAVORED_PIGMENT = ComponentRegistry.getOrCreate( + modLoc("favored_pigment"), CCFavoredPigment.class); public static final ComponentKey SENTINEL = ComponentRegistry.getOrCreate(modLoc("sentinel"), CCSentinel.class); public static final ComponentKey FLIGHT = ComponentRegistry.getOrCreate(modLoc("flight"), @@ -48,8 +48,8 @@ public class HexCardinalComponents implements EntityComponentInitializer, ItemCo public static final ComponentKey PATTERNS = ComponentRegistry.getOrCreate(modLoc("patterns"), CCPatterns.class); - public static final ComponentKey COLORIZER = ComponentRegistry.getOrCreate(modLoc("colorizer"), - CCColorizer.class); + public static final ComponentKey PIGMENT = ComponentRegistry.getOrCreate(modLoc("pigment"), + CCPigment.class); public static final ComponentKey IOTA_HOLDER = ComponentRegistry.getOrCreate(modLoc("iota_holder"), CCIotaHolder.class); public static final ComponentKey MEDIA_HOLDER = ComponentRegistry.getOrCreate(modLoc("media_holder"), @@ -63,7 +63,7 @@ public class HexCardinalComponents implements EntityComponentInitializer, ItemCo @Override public void registerEntityComponentFactories(EntityComponentFactoryRegistry registry) { registry.registerFor(Mob.class, BRAINSWEPT, CCBrainswept::new); - registry.registerForPlayers(FAVORED_COLORIZER, CCFavoredColorizer::new, RespawnCopyStrategy.ALWAYS_COPY); + registry.registerForPlayers(FAVORED_PIGMENT, CCFavoredPigment::new, RespawnCopyStrategy.ALWAYS_COPY); registry.registerForPlayers(SENTINEL, CCSentinel::new, RespawnCopyStrategy.ALWAYS_COPY); registry.registerForPlayers(ALTIORA, CCAltiora::new, RespawnCopyStrategy.LOSSLESS_ONLY); // Fortunately these are all both only needed on the server and don't want to be copied across death @@ -82,7 +82,7 @@ public class HexCardinalComponents implements EntityComponentInitializer, ItemCo @Override public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) { - registry.register(i -> i instanceof ColorizerItem, COLORIZER, CCColorizer.ItemBased::new); + registry.register(i -> i instanceof PigmentItem, PIGMENT, CCPigment.ItemBased::new); registry.register(i -> i instanceof IotaHolderItem, IOTA_HOLDER, CCItemIotaHolder.ItemBased::new); // oh havoc, you think you're so funny diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCHexHolder.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCHexHolder.java index 7e7022b7..3da4e8da 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCHexHolder.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCHexHolder.java @@ -24,7 +24,7 @@ public abstract class CCHexHolder extends ItemComponent implements ADHexHolder { super(owner); var item = owner.getItem(); if (!(item instanceof HexHolderItem hexHolderItem)) { - throw new IllegalStateException("item is not a colorizer: " + owner); + throw new IllegalStateException("item is not a pigment: " + owner); } this.hexHolder = hexHolderItem; } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCColorizer.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java similarity index 52% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCColorizer.java rename to Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java index 93ca9ec7..3247810f 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCColorizer.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java @@ -1,7 +1,7 @@ package at.petrak.hexcasting.fabric.cc.adimpl; -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.addldata.ADPigment; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; import dev.onyxstudios.cca.api.v3.item.ItemComponent; @@ -10,21 +10,21 @@ import net.minecraft.world.item.ItemStack; import java.util.UUID; /** - * The colorizer itself + * The pigment itself */ -public abstract class CCColorizer extends ItemComponent implements ADColorizer { - public CCColorizer(ItemStack stack) { - super(stack, HexCardinalComponents.COLORIZER); +public abstract class CCPigment extends ItemComponent implements ADPigment { + public CCPigment(ItemStack stack) { + super(stack, HexCardinalComponents.PIGMENT); } - public static class ItemBased extends CCColorizer { - private final ColorizerItem item; + public static class ItemBased extends CCPigment { + private final PigmentItem item; public ItemBased(ItemStack owner) { super(owner); var item = owner.getItem(); - if (!(item instanceof ColorizerItem col)) { - throw new IllegalStateException("item is not a colorizer: " + owner); + if (!(item instanceof PigmentItem col)) { + throw new IllegalStateException("item is not a pigment: " + owner); } this.item = col; } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java index a9a7a649..55acf6c1 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java @@ -145,9 +145,11 @@ public class FabricXplatImpl implements IXplatAbstractions { } @Override - public void setColorizer(Player target, FrozenPigment colorizer) { - var cc = HexCardinalComponents.FAVORED_COLORIZER.get(target); - cc.setColorizer(colorizer); + public @Nullable FrozenPigment setPigment(Player target, @Nullable FrozenPigment pigment) { + var cc = HexCardinalComponents.FAVORED_PIGMENT.get(target); + var old = cc.getPigment(); + cc.setPigment(pigment); + return old; } @Override @@ -197,9 +199,9 @@ public class FabricXplatImpl implements IXplatAbstractions { } @Override - public FrozenPigment getColorizer(Player player) { - var cc = HexCardinalComponents.FAVORED_COLORIZER.get(player); - return cc.getColorizer(); + public FrozenPigment getPigment(Player player) { + var cc = HexCardinalComponents.FAVORED_PIGMENT.get(player); + return cc.getPigment(); } @Override @@ -267,14 +269,14 @@ public class FabricXplatImpl implements IXplatAbstractions { } @Override - public boolean isColorizer(ItemStack stack) { - return HexCardinalComponents.COLORIZER.isProvidedBy(stack); + public boolean isPigment(ItemStack stack) { + return HexCardinalComponents.PIGMENT.isProvidedBy(stack); } @Override - public ColorProvider getColorProvider(FrozenPigment colorizer) { - var cc = HexCardinalComponents.COLORIZER.maybeGet(colorizer.item()); - return cc.map(col -> col.provideColor(colorizer.owner())).orElse(ColorProvider.MISSING); + public ColorProvider getColorProvider(FrozenPigment pigment) { + var cc = HexCardinalComponents.PIGMENT.maybeGet(pigment.item()); + return cc.map(col -> col.provideColor(pigment.owner())).orElse(ColorProvider.MISSING); } @Override diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java index 8fda7232..89e26d44 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java @@ -1,7 +1,7 @@ package at.petrak.hexcasting.forge.cap; import at.petrak.hexcasting.forge.network.MsgAltioraUpdateAck; -import at.petrak.hexcasting.forge.network.MsgColorizerUpdateAck; +import at.petrak.hexcasting.forge.network.MsgPigmentUpdateAck; import at.petrak.hexcasting.forge.network.MsgSentinelStatusUpdateAck; import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.server.level.ServerPlayer; @@ -28,7 +28,7 @@ public class CapSyncers { x.setFlight(player, x.getFlight(proto)); x.setAltiora(player, x.getAltiora(proto)); x.setSentinel(player, x.getSentinel(proto)); - x.setColorizer(player, x.getColorizer(proto)); + x.setPigment(player, x.getPigment(proto)); x.setStaffcastImage(player, x.getStaffcastVM(proto, InteractionHand.MAIN_HAND).getImage()); x.setPatterns(player, x.getPatternsSavedInUi(proto)); } @@ -40,7 +40,7 @@ public class CapSyncers { } syncSentinel(player); - syncColorizer(player); + syncPigment(player); syncAltiora(player); } @@ -51,7 +51,7 @@ public class CapSyncers { } syncSentinel(player); - syncColorizer(player); + syncPigment(player); syncAltiora(player); } @@ -60,9 +60,9 @@ public class CapSyncers { new MsgSentinelStatusUpdateAck(IXplatAbstractions.INSTANCE.getSentinel(player))); } - public static void syncColorizer(ServerPlayer player) { + public static void syncPigment(ServerPlayer player) { IXplatAbstractions.INSTANCE.sendPacketToPlayer(player, - new MsgColorizerUpdateAck(IXplatAbstractions.INSTANCE.getColorizer(player))); + new MsgPigmentUpdateAck(IXplatAbstractions.INSTANCE.getPigment(player))); } public static void syncAltiora(ServerPlayer player) { diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java index ab43bbb2..03aa28e9 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java @@ -74,7 +74,7 @@ public class ForgeCapabilityHandler { evt.register(ADMediaHolder.class); evt.register(ADIotaHolder.class); evt.register(ADHexHolder.class); - evt.register(ADColorizer.class); + evt.register(ADPigment.class); } public static void attachItemCaps(AttachCapabilitiesEvent evt) { @@ -124,9 +124,9 @@ public class ForgeCapabilityHandler { provide(stack, HexCapabilities.VARIANT_ITEM, () -> new CapItemVariantItem(variantItem, stack))); } - if (stack.getItem() instanceof ColorizerItem colorizer) { + if (stack.getItem() instanceof PigmentItem pigment) { evt.addCapability(PIGMENT_CAP, - provide(stack, HexCapabilities.COLOR, () -> new CapItemColorizer(colorizer, stack))); + provide(stack, HexCapabilities.COLOR, () -> new CapItemPigment(pigment, stack))); } if (IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Forge.CURIOS_API_ID) diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java index fa81e044..f08c63ba 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java @@ -15,6 +15,6 @@ public final class HexCapabilities { }); public static final Capability VARIANT_ITEM = CapabilityManager.get(new CapabilityToken<>() { }); - public static final Capability COLOR = CapabilityManager.get(new CapabilityToken<>() { + public static final Capability COLOR = CapabilityManager.get(new CapabilityToken<>() { }); } diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemColorizer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemPigment.java similarity index 56% rename from Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemColorizer.java rename to Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemPigment.java index 1df82b05..68d7eb71 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemColorizer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemPigment.java @@ -1,14 +1,14 @@ package at.petrak.hexcasting.forge.cap.adimpl; -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.api.item.ColorizerItem; +import at.petrak.hexcasting.api.addldata.ADPigment; +import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import net.minecraft.world.item.ItemStack; import java.util.UUID; -public record CapItemColorizer(ColorizerItem holder, - ItemStack stack) implements ADColorizer { +public record CapItemPigment(PigmentItem holder, + ItemStack stack) implements ADPigment { @Override public ColorProvider provideColor(UUID owner) { return holder.provideColor(this.stack, owner); diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java index f10413b1..851283a9 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java @@ -4,7 +4,7 @@ import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.client.render.GaslightingTracker; import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.items.ItemStaff; -import at.petrak.hexcasting.common.items.colorizer.ItemPrideColorizer; +import at.petrak.hexcasting.common.items.pigment.ItemPridePigment; import at.petrak.hexcasting.common.items.magic.ItemMediaBattery; import at.petrak.hexcasting.common.items.magic.ItemPackagedHex; import at.petrak.hexcasting.common.items.storage.ItemFocus; @@ -138,18 +138,18 @@ public class HexItemModels extends PaucalItemModelProvider { } for (var dye : DyeColor.values()) { - singleTexture(getPath(HexItems.DYE_COLORIZERS.get(dye)), + singleTexture(getPath(HexItems.DYE_PIGMENTS.get(dye)), new ResourceLocation("item/generated"), "layer0", modLoc("item/colorizer/dye_" + dye.getName())); } - for (var type : ItemPrideColorizer.Type.values()) { - singleTexture(getPath(HexItems.PRIDE_COLORIZERS.get(type)), + for (var type : ItemPridePigment.Type.values()) { + singleTexture(getPath(HexItems.PRIDE_PIGMENTS.get(type)), new ResourceLocation("item/generated"), "layer0", modLoc("item/colorizer/pride_" + type.getName())); } - singleTexture(getPath(HexItems.UUID_COLORIZER), new ResourceLocation("item/generated"), + singleTexture(getPath(HexItems.UUID_PIGMENT), new ResourceLocation("item/generated"), "layer0", modLoc("item/colorizer/uuid")); - singleTexture(getPath(HexItems.DEFAULT_COLORIZER), new ResourceLocation("item/generated"), + singleTexture(getPath(HexItems.DEFAULT_PIGMENT), new ResourceLocation("item/generated"), "layer0", modLoc("item/colorizer/uuid")); simpleItem(modLoc("slate_blank")); diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java b/Forge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java index ee1a61d2..4afd3845 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java @@ -43,8 +43,8 @@ public class ForgePacketHandler { MsgBlinkS2C::deserialize, makeClientBoundHandler(MsgBlinkS2C::handle)); NETWORK.registerMessage(messageIdx++, MsgSentinelStatusUpdateAck.class, MsgSentinelStatusUpdateAck::serialize, MsgSentinelStatusUpdateAck::deserialize, makeClientBoundHandler(MsgSentinelStatusUpdateAck::handle)); - NETWORK.registerMessage(messageIdx++, MsgColorizerUpdateAck.class, MsgColorizerUpdateAck::serialize, - MsgColorizerUpdateAck::deserialize, makeClientBoundHandler(MsgColorizerUpdateAck::handle)); + NETWORK.registerMessage(messageIdx++, MsgPigmentUpdateAck.class, MsgPigmentUpdateAck::serialize, + MsgPigmentUpdateAck::deserialize, makeClientBoundHandler(MsgPigmentUpdateAck::handle)); NETWORK.registerMessage(messageIdx++, MsgAltioraUpdateAck.class, MsgAltioraUpdateAck::serialize, MsgAltioraUpdateAck::deserialize, makeClientBoundHandler(MsgAltioraUpdateAck::handle)); NETWORK.registerMessage(messageIdx++, MsgCastParticleS2C.class, MsgCastParticleS2C::serialize, diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgColorizerUpdateAck.java b/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java similarity index 77% rename from Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgColorizerUpdateAck.java rename to Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java index eb36ae63..c38266b1 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgColorizerUpdateAck.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java @@ -13,7 +13,7 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; /** * Sent server->client to synchronize the status of the sentinel. */ -public record MsgColorizerUpdateAck(FrozenPigment update) implements IMessage { +public record MsgPigmentUpdateAck(FrozenPigment update) implements IMessage { public static final ResourceLocation ID = modLoc("color"); @Override @@ -21,12 +21,12 @@ public record MsgColorizerUpdateAck(FrozenPigment update) implements IMessage { return ID; } - public static MsgColorizerUpdateAck deserialize(ByteBuf buffer) { + public static MsgPigmentUpdateAck deserialize(ByteBuf buffer) { var buf = new FriendlyByteBuf(buffer); var tag = buf.readAnySizeNbt(); var colorizer = FrozenPigment.fromNBT(tag); - return new MsgColorizerUpdateAck(colorizer); + return new MsgPigmentUpdateAck(colorizer); } @Override @@ -34,13 +34,13 @@ public record MsgColorizerUpdateAck(FrozenPigment update) implements IMessage { buf.writeNbt(this.update.serializeToNBT()); } - public static void handle(MsgColorizerUpdateAck self) { + public static void handle(MsgPigmentUpdateAck self) { Minecraft.getInstance().execute(new Runnable() { @Override public void run() { var player = Minecraft.getInstance().player; if (player != null) { - IXplatAbstractions.INSTANCE.setColorizer(player, self.update()); + IXplatAbstractions.INSTANCE.setPigment(player, self.update()); } } }); diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java b/Forge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java index 20c1a328..d8af1776 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java @@ -181,13 +181,20 @@ public class ForgeXplatImpl implements IXplatAbstractions { } @Override - public void setColorizer(Player player, FrozenPigment colorizer) { + public @Nullable FrozenPigment setPigment(Player player, @Nullable FrozenPigment pigment) { + var old = getPigment(player); + CompoundTag tag = player.getPersistentData(); - tag.put(TAG_COLOR, colorizer.serializeToNBT()); + if (pigment != null) + tag.put(TAG_PIGMENT, pigment.serializeToNBT()); + else + tag.remove(TAG_PIGMENT); if (player instanceof ServerPlayer serverPlayer) { - CapSyncers.syncColorizer(serverPlayer); + CapSyncers.syncPigment(serverPlayer); } + + return old; } @Override @@ -255,8 +262,8 @@ public class ForgeXplatImpl implements IXplatAbstractions { } @Override - public FrozenPigment getColorizer(Player player) { - return FrozenPigment.fromNBT(player.getPersistentData().getCompound(TAG_COLOR)); + public FrozenPigment getPigment(Player player) { + return FrozenPigment.fromNBT(player.getPersistentData().getCompound(TAG_PIGMENT)); } @Override @@ -340,15 +347,15 @@ public class ForgeXplatImpl implements IXplatAbstractions { } @Override - public boolean isColorizer(ItemStack stack) { + public boolean isPigment(ItemStack stack) { return stack.getCapability(HexCapabilities.COLOR).isPresent(); } @Override - public ColorProvider getColorProvider(FrozenPigment colorizer) { - var maybeColorizer = colorizer.item().getCapability(HexCapabilities.COLOR).resolve(); - if (maybeColorizer.isPresent()) { - return maybeColorizer.get().provideColor(colorizer.owner()); + public ColorProvider getColorProvider(FrozenPigment pigment) { + var maybePigment = pigment.item().getCapability(HexCapabilities.COLOR).resolve(); + if (maybePigment.isPresent()) { + return maybePigment.get().provideColor(pigment.owner()); } return ColorProvider.MISSING; } @@ -561,7 +568,7 @@ public class ForgeXplatImpl implements IXplatAbstractions { public static final String TAG_SENTINEL_POSITION = "hexcasting:sentinel_position"; public static final String TAG_SENTINEL_DIMENSION = "hexcasting:sentinel_dimension"; - public static final String TAG_COLOR = "hexcasting:colorizer"; + public static final String TAG_PIGMENT = "hexcasting:pigment"; public static final String TAG_FLIGHT_ALLOWED = "hexcasting:flight_allowed"; public static final String TAG_FLIGHT_TIME = "hexcasting:flight_time"; From 4e4d34a315bdc2b5f2bb4c13ad60ddeef568f170 Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Thu, 15 Jun 2023 01:45:32 +1000 Subject: [PATCH 5/6] java is evil; why does this fix referencing-LocalPlayer on server issues --- .../forge/network/MsgSentinelStatusUpdateAck.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java b/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java index 45f69868..dce6f26e 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java @@ -57,10 +57,14 @@ public record MsgSentinelStatusUpdateAck(@Nullable Sentinel update) implements I } public static void handle(MsgSentinelStatusUpdateAck self) { - Minecraft.getInstance().execute(() -> { - var player = Minecraft.getInstance().player; - if (player != null) { - IXplatAbstractions.INSTANCE.setSentinel(player, self.update()); + //noinspection Convert2Lambda + Minecraft.getInstance().execute(new Runnable() { + @Override + public void run() { + var player = Minecraft.getInstance().player; + if (player != null) { + IXplatAbstractions.INSTANCE.setSentinel(player, self.update()); + } } }); } From 541a0b365a56e040dab4b5b6bdb15f2c4dcfb1ed Mon Sep 17 00:00:00 2001 From: Talia-12 Date: Thu, 15 Jun 2023 15:26:15 +1000 Subject: [PATCH 6/6] Fix recipe issues, not grabbing all code properly for the circle colours, and fix #478 (VillagerIngredient's weren't adding their type to the buffer, fixed by moving the type-adding code into BrainsweepeeIngredient.) --- .../hexcasting/common/recipe/BrainsweepRecipe.java | 6 +++--- .../ingredient/brainsweep/BrainsweepeeIngredient.java | 9 +++++++-- .../ingredient/brainsweep/EntityTagIngredient.java | 2 -- .../ingredient/brainsweep/EntityTypeIngredient.java | 2 -- .../petrak/hexcasting/datagen/recipe/HexplatRecipes.java | 2 +- Common/src/main/resources/hexplat.accesswidener | 1 + Fabric/src/main/resources/fabricasting.accesswidener | 1 + 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java index d35f045a..a789a0b0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java @@ -95,7 +95,7 @@ public record BrainsweepRecipe( @Override public void toNetwork(FriendlyByteBuf buf, BrainsweepRecipe recipe) { recipe.blockIn.write(buf); - recipe.entityIn.write(buf); + recipe.entityIn.wrapWrite(buf); buf.writeVarInt(recipe.mediaCost); buf.writeVarInt(Block.getId(recipe.result)); } @@ -103,10 +103,10 @@ public record BrainsweepRecipe( @Override public @NotNull BrainsweepRecipe fromNetwork(ResourceLocation recipeID, FriendlyByteBuf buf) { var blockIn = StateIngredientHelper.read(buf); - var villagerIn = BrainsweepeeIngredient.read(buf); + var brainsweepeeIn = BrainsweepeeIngredient.read(buf); var cost = buf.readVarInt(); var result = Block.stateById(buf.readVarInt()); - return new BrainsweepRecipe(recipeID, blockIn, villagerIn, cost, result); + return new BrainsweepRecipe(recipeID, blockIn, brainsweepeeIn, cost, result); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java index 5706e4e9..6e777cc2 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java @@ -29,6 +29,11 @@ public abstract class BrainsweepeeIngredient { public abstract JsonObject serialize(); + public void wrapWrite(FriendlyByteBuf buf) { + buf.writeEnum(this.ingrType()); + this.write(buf); + } + public abstract void write(FriendlyByteBuf buf); /** @@ -44,8 +49,8 @@ public abstract class BrainsweepeeIngredient { public abstract String getSomeKindOfReasonableIDForEmi(); public static BrainsweepeeIngredient read(FriendlyByteBuf buf) { - var type = buf.readVarInt(); - return switch (Type.values()[type]) { + var type = buf.readEnum(Type.class); + return switch (type) { case VILLAGER -> VillagerIngredient.read(buf); case ENTITY_TYPE -> EntityTypeIngredient.read(buf); case ENTITY_TAG -> EntityTagIngredient.read(buf); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java index 363fac84..05544904 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java @@ -89,8 +89,6 @@ public class EntityTagIngredient extends BrainsweepeeIngredient { @Override public void write(FriendlyByteBuf buf) { - buf.writeVarInt(Type.ENTITY_TAG.ordinal()); - buf.writeResourceLocation(this.entityTypeTag.location()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java index 85f7d04d..ee100f73 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java @@ -56,8 +56,6 @@ public class EntityTypeIngredient extends BrainsweepeeIngredient { @Override public void write(FriendlyByteBuf buf) { - buf.writeVarInt(Type.ENTITY_TYPE.ordinal()); - buf.writeVarInt(Registry.ENTITY_TYPE.getId(this.entityType)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java index 608dfd5b..d36fbe67 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java @@ -306,7 +306,7 @@ public class HexplatRecipes extends PaucalRecipeProvider { .unlockedBy("has_item", hasItem(HexTags.Items.EDIFIED_LOGS)).save(recipes); for (var log : EDIFIED_LOGS) { - ShapedRecipeBuilder.shaped(HexBlocks.EDIFIED_WOOD, 3) + ShapedRecipeBuilder.shaped(log, 3) .define('W', log) .pattern("WW") .pattern("WW") diff --git a/Common/src/main/resources/hexplat.accesswidener b/Common/src/main/resources/hexplat.accesswidener index 478bd440..b3bfdcfc 100644 --- a/Common/src/main/resources/hexplat.accesswidener +++ b/Common/src/main/resources/hexplat.accesswidener @@ -5,3 +5,4 @@ accessible field net/minecraft/client/renderer/RenderType$CompositeState textur accessible class net/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard accessible class net/minecraft/world/item/crafting/Ingredient$Value accessible method net/minecraft/world/item/crafting/Ingredient (Ljava/util/stream/Stream;)V +accessible method net/minecraft/world/item/context/UseOnContext (Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V diff --git a/Fabric/src/main/resources/fabricasting.accesswidener b/Fabric/src/main/resources/fabricasting.accesswidener index 004416f8..bbbb5449 100644 --- a/Fabric/src/main/resources/fabricasting.accesswidener +++ b/Fabric/src/main/resources/fabricasting.accesswidener @@ -11,3 +11,4 @@ accessible class net/minecraft/client/renderer/RenderType$CompositeRenderType accessible class net/minecraft/client/renderer/RenderType$CompositeState accessible field net/minecraft/client/renderer/RenderType$CompositeState textureState Lnet/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard; accessible class net/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard +accessible method net/minecraft/world/item/context/UseOnContext (Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V