TheWildBackport/common/src/main/java/com/cursedcauldron/wildbackport/common/effects/EffectFactor.java
2023-08-29 17:39:30 +02:00

40 lines
1.1 KiB
Java

package com.cursedcauldron.wildbackport.common.effects;
import java.util.Optional;
import java.util.function.Supplier;
import net.minecraft.network.protocol.Packet;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectInstance;
public interface EffectFactor {
static EffectFactor of(MobEffect effect) {
return (EffectFactor) effect;
}
MobEffect setFactorCalculationData(Supplier<FactorCalculationData> data);
Supplier<FactorCalculationData> getFactorCalculationData();
static Optional<FactorCalculationData> create(MobEffect effect) {
return Optional.ofNullable(of(effect).getFactorCalculationData().get());
}
interface Instance {
static Instance of(MobEffectInstance instance) {
return (Instance) instance;
}
void setFactorCalculationData(Optional<FactorCalculationData> data);
Optional<FactorCalculationData> getFactorCalculationData();
}
interface Network {
static Network of(Packet<?> packet) {
return (Network) packet;
}
FactorCalculationData getFactorCalculationData();
}
}