package vazkii.botania.common.core.proxy;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import vazkii.botania.api.boss.IBotaniaBoss;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.common.core.helper.Vector3;
public interface IProxy {
void preInit(FMLPreInitializationEvent event);
void init(FMLInitializationEvent event);
void postInit(FMLPostInitializationEvent event);
void setEntryToOpen(LexiconEntry entry);
void setToTutorialIfFirstLaunch();
void setLexiconStack(ItemStack stack);
boolean isTheClientPlayer(EntityLivingBase entity);
EntityPlayer getClientPlayer();
boolean isClientPlayerWearingMonocle();
String getLastVersion();
void setExtraReach(EntityLivingBase entity, float reach);
boolean openWikiPage(World world, Block block, RayTraceResult pos);
void setMultiblock(World world, int x, int y, int z, double radius, Block block);
void removeSextantMultiblock();
long getWorldElapsedTicks();
void setSparkleFXNoClip(boolean noclip);
void setSparkleFXCorrupt(boolean corrupt);
default void sparkleFX(double x, double y, double z, float r, float g, float b, float size, int m) {
sparkleFX(x, y, z, r, g, b, size, m, false);
}
void sparkleFX(double x, double y, double z, float r, float g, float b, float size, int m, boolean fake);
void setWispFXDistanceLimit(boolean limit);
void setWispFXDepthTest(boolean depth);
default void wispFX(double x, double y, double z, float r, float g, float b, float size) {
wispFX(x, y, z, r, g, b, size, 0F);
}
default void wispFX(double x, double y, double z, float r, float g, float b, float size, float gravity) {
wispFX(x, y, z, r, g, b, size, gravity, 1F);
}
default void wispFX(double x, double y, double z, float r, float g, float b, float size, float gravity, float maxAgeMul) {
wispFX(x, y, z, r, g, b, size, 0, -gravity, 0, maxAgeMul);
}
default void wispFX(double x, double y, double z, float r, float g, float b, float size, float motionx, float motiony, float motionz) {
wispFX(x, y, z, r, g, b, size, motionx, motiony, motionz, 1F);
}
void wispFX(double x, double y, double z, float r, float g, float b, float size, float motionx, float motiony, float motionz, float maxAgeMul);
default void lightningFX(Vector3 vectorStart, Vector3 vectorEnd, float ticksPerMeter, int colorOuter, int colorInner) {
lightningFX(vectorStart, vectorEnd, ticksPerMeter, System.nanoTime(), colorOuter, colorInner);
}
void lightningFX(Vector3 vectorStart, Vector3 vectorEnd, float ticksPerMeter, long seed, int colorOuter, int colorInner);
void addBoss(IBotaniaBoss boss);
void removeBoss(IBotaniaBoss boss);
int getClientRenderDistance();
Object getEmptyModelBiped();
}