package org.jrenner.fps.net.client; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.IntIntMap; import com.badlogic.gdx.utils.TimeUtils; import com.esotericsoftware.kryonet.Client; import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.FrameworkMessage; import com.esotericsoftware.kryonet.Listener; import org.jrenner.fps.Log; import org.jrenner.fps.Main; import org.jrenner.fps.Player; import org.jrenner.fps.entity.DynamicEntity; import org.jrenner.fps.entity.Entity; import org.jrenner.fps.event.ClientEvent; import org.jrenner.fps.net.NetManager; import org.jrenner.fps.net.packages.BulletPackage; import org.jrenner.fps.net.packages.ChatMessage; import org.jrenner.fps.net.packages.ClientRequest; import org.jrenner.fps.net.packages.CommandPackage; import org.jrenner.fps.net.packages.EntityInfoRequest; import org.jrenner.fps.net.packages.ServerMessage; import org.jrenner.fps.net.packages.ServerUpdate; import java.io.IOException; public abstract class AbstractClient { public Player player; public int playerId = -1; public final Array<ServerUpdate> incomingUpdates = new Array<>(); public abstract void connectToServer(); public abstract void disconnectedFromServer(); public void assignClientPlayerToId(int id) { playerId = id; DynamicEntity ent = (DynamicEntity) Entity.getEntityById(id); if (ent != null) { player = new Player(ent); if (Main.inst.client == null) throw new GdxRuntimeException("no client"); ent.setPlayer(player); } else { //throw new GdxRuntimeException("bad"); Log.error("couldn't find entity for assignPlayerToId: " + id); } } public abstract void sendChatMessage(ChatMessage chat); public abstract void requestResetPosition(); public abstract void update(); }