Skip to content

Commit 7dd08da

Browse files
committed
Some fancy attempt at the prison bottle and gracedia changes.
1 parent ab6ae7d commit 7dd08da

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

common/src/main/java/generations/gg/generations/core/generationscore/common/world/item/GracideaItem.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ class GracideaItem(properties: Properties) : Item(properties), PokemonInteractio
2121
val provider = entity.pokemon.getProviderOrNull<FlagSpeciesFeatureProvider>("sky") ?: return false
2222
val feature = provider.getOrCreate(entity.pokemon)
2323

24-
if (!feature.enabled && entity.level().isDay) {
25-
feature.enabled = true
26-
feature.apply(entity)
27-
player.sendSystemMessage("generations_core.ability.formchange".asTranslated(entity.pokemon.getDisplayName().string), true)
28-
return true
29-
}
24+
val state = when {
25+
!feature.enabled && entity.level().isDay -> true
26+
feature.enabled -> false
27+
else -> null
28+
} ?: return false
29+
30+
feature.enabled = state
31+
feature.apply(entity)
32+
player.sendSystemMessage("generations_core.ability.formchange".asTranslated(entity.pokemon.getDisplayName().string), true)
33+
return true
3034
}
3135

3236
return false

common/src/main/java/generations/gg/generations/core/generationscore/common/world/level/block/GenerationsShrines.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ object GenerationsShrines {
9090
val PRISON_BOTTLE: RegistrySupplier<PrisonBottleBlock> = registerBlockItem(
9191
"prison_bottle",
9292
{ PrisonBottleBlock(BOTTLE_PROPERTIES) },
93-
{ block, properties -> FormChangingBlockItem(block, properties, "unbound") }, GenerationsItems.LEGENDARY_ITEMS
93+
{ block, properties -> PokemonInteractBlockItem(block, properties, "unbound") }, GenerationsItems.LEGENDARY_ITEMS
9494
)
9595

9696

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package generations.gg.generations.core.generationscore.common.world.level.block
2+
3+
import com.cobblemon.mod.common.api.pokemon.feature.FlagSpeciesFeatureProvider
4+
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
5+
import com.cobblemon.mod.common.util.asTranslated
6+
import generations.gg.generations.core.generationscore.common.util.getOrCreate
7+
import generations.gg.generations.core.generationscore.common.util.getProviderOrNull
8+
import generations.gg.generations.core.generationscore.common.world.item.BlockItemWithLang
9+
import generations.gg.generations.core.generationscore.common.world.item.GenerationsCobblemonInteractions
10+
import net.minecraft.server.level.ServerPlayer
11+
import net.minecraft.world.item.Item
12+
import net.minecraft.world.item.ItemStack
13+
import net.minecraft.world.level.block.Block
14+
15+
open class PokemonInteractBlockItem(block: Block, properties: Item.Properties, val form: String): BlockItemWithLang(block, properties), GenerationsCobblemonInteractions.PokemonInteraction {
16+
override fun processInteraction(player: ServerPlayer, entity: PokemonEntity, stack: ItemStack): Boolean {
17+
18+
val provider = entity.pokemon.getProviderOrNull<FlagSpeciesFeatureProvider>("form") ?: return false
19+
val feature = provider.getOrCreate(entity.pokemon)
20+
21+
feature.enabled = !feature.enabled
22+
feature.apply(entity)
23+
player.sendSystemMessage("generations_core.ability.formchange".asTranslated(entity.pokemon.getDisplayName().string), true)
24+
}
25+
26+
}

0 commit comments

Comments
 (0)