TurnBasedMinecraftMod/src/main/java/com/burnedkirby/TurnBasedMinecraft/client/ClientProxy.java

239 lines
5.9 KiB
Java
Raw Normal View History

2019-11-25 06:29:25 +00:00
package com.burnedkirby.TurnBasedMinecraft.client;
2018-09-12 06:39:55 +00:00
2019-11-25 06:29:25 +00:00
import com.burnedkirby.TurnBasedMinecraft.common.Battle;
import com.burnedkirby.TurnBasedMinecraft.common.CommonProxy;
2018-09-12 06:39:55 +00:00
2019-10-21 07:13:11 +00:00
import net.minecraft.client.GameSettings;
2018-09-12 06:39:55 +00:00
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.util.SoundCategory;
2018-10-20 08:54:32 +00:00
import net.minecraft.util.text.ITextComponent;
2019-10-21 07:13:11 +00:00
import net.minecraft.util.text.StringTextComponent;
2018-10-20 08:54:32 +00:00
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.dimension.DimensionType;
2018-09-12 06:39:55 +00:00
public class ClientProxy extends CommonProxy
{
private BattleGui battleGui = null;
private BattleMusic battleMusic = null;
private int battleMusicCount = 0;
private int sillyMusicCount = 0;
private Battle localBattle = null;
2018-09-12 06:39:55 +00:00
@Override
protected void initializeClient()
2018-09-12 06:39:55 +00:00
{
battleGui = new BattleGui();
battleMusic = null; // will be initialized in postInit()
battleMusicCount = 0;
sillyMusicCount = 0;
2018-09-28 03:13:07 +00:00
localBattle = null;
logger.debug("Init client");
2018-09-12 06:39:55 +00:00
}
2018-09-12 06:39:55 +00:00
@Override
public void setBattleGuiTime(int timeRemaining)
{
battleGui.setTimeRemaining(timeRemaining);
2018-09-12 06:39:55 +00:00
}
@Override
public void setBattleGuiBattleChanged()
{
battleGui.battleChanged();
}
@Override
public void setBattleGuiAsGui()
{
2019-10-21 07:13:11 +00:00
if(Minecraft.getInstance().currentScreen != battleGui)
{
battleGui.turnEnd();
Minecraft.getInstance().displayGuiScreen(battleGui);
}
2018-09-12 06:39:55 +00:00
}
@Override
public void battleGuiTurnBegin()
{
battleGui.turnBegin();
}
@Override
public void battleGuiTurnEnd()
{
battleGui.turnEnd();
}
2018-09-18 07:58:01 +00:00
@Override
public void battleStarted()
{
setBattleGuiAsGui();
}
@Override
public void battleEnded()
{
2018-09-28 03:13:07 +00:00
localBattle = null;
2019-10-21 07:13:11 +00:00
Minecraft.getInstance().displayGuiScreen(null);
stopMusic(true);
battleMusicCount = 0;
sillyMusicCount = 0;
}
@Override
protected void postInitClient()
{
battleMusic = new BattleMusic(getLogger());
}
@Override
public void playBattleMusic()
{
2019-10-21 07:13:11 +00:00
GameSettings gs = Minecraft.getInstance().gameSettings;
battleMusic.playBattle(gs.getSoundLevel(SoundCategory.MUSIC) * gs.getSoundLevel(SoundCategory.MASTER));
}
@Override
public void playSillyMusic()
{
2019-10-21 07:13:11 +00:00
GameSettings gs = Minecraft.getInstance().gameSettings;
battleMusic.playSilly(gs.getSoundLevel(SoundCategory.MUSIC) * gs.getSoundLevel(SoundCategory.MASTER));
}
@Override
public void stopMusic(boolean resumeMCSounds)
{
battleMusic.stopMusic(resumeMCSounds);
}
/**
* Sets what music to play based on type and loaded Config
*/
@Override
public void typeEnteredBattle(String type)
{
2018-09-28 03:13:07 +00:00
if(localBattle == null)
{
return;
}
if(type == null || type.isEmpty() || getConfig().isBattleMusicType(type))
{
++battleMusicCount;
}
else if(getConfig().isSillyMusicType(type))
{
++sillyMusicCount;
}
else
{
++battleMusicCount;
}
checkBattleTypes();
}
@Override
public void typeLeftBattle(String type)
{
2018-09-28 03:13:07 +00:00
if(localBattle == null)
{
return;
}
if(type == null || type.isEmpty() || getConfig().isBattleMusicType(type))
{
--battleMusicCount;
}
else if(getConfig().isSillyMusicType(type))
{
--sillyMusicCount;
}
else
{
--battleMusicCount;
}
checkBattleTypes();
}
@Override
public void displayString(String message)
{
2019-10-21 07:13:11 +00:00
ITextComponent prefix = new StringTextComponent("TBM: ");
2018-10-20 08:54:32 +00:00
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
2019-10-21 07:13:11 +00:00
ITextComponent text = new StringTextComponent(message);
2018-10-20 08:54:32 +00:00
prefix.appendSibling(text);
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
2019-10-21 07:13:11 +00:00
Minecraft.getInstance().player.sendMessage(prefix);
}
@Override
public void displayTextComponent(ITextComponent text)
{
2019-10-21 07:13:11 +00:00
Minecraft.getInstance().player.sendMessage(text);
}
private void checkBattleTypes()
{
float percentage = 0.0f;
if(sillyMusicCount == 0 && battleMusicCount == 0)
{
percentage = 0.0f;
}
else if(battleMusicCount == 0)
{
percentage = 100.0f;
}
else
{
percentage = 100.0f * (float)sillyMusicCount / (float)(sillyMusicCount + battleMusicCount);
}
if(percentage >= (float)getConfig().getSillyMusicThreshold())
{
if(battleMusic.isPlaying())
{
if(!battleMusic.isPlayingSilly() && battleMusic.hasSillyMusic())
{
stopMusic(false);
playSillyMusic();
}
}
else if(battleMusic.hasSillyMusic())
{
playSillyMusic();
}
}
else
{
if(battleMusic.isPlaying())
{
if(battleMusic.isPlayingSilly() && battleMusic.hasBattleMusic())
{
stopMusic(false);
playBattleMusic();
}
}
else if(battleMusic.hasBattleMusic())
{
playBattleMusic();
}
}
}
2018-09-28 03:13:07 +00:00
@Override
public Battle getLocalBattle()
{
return localBattle;
}
@Override
public void createLocalBattle(int id)
{
localBattle = new Battle(null, id, null, null, false, Minecraft.getInstance().world.dimension.getType());
2018-09-28 03:13:07 +00:00
}
@Override
public Entity getEntity(int id, DimensionType dim) {
return Minecraft.getInstance().world.getEntityByID(id);
}
2018-09-12 06:39:55 +00:00
}