![JAR search and dependency download from the Maven repository](/logo.png)
net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.WorldHost Maven / Gradle / Ivy
/** Copyright 2014 Robin Stumm ([email protected], http://dermetfan.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. */
package net.dermetfan.gdx.physics.box2d.kryonet.multiplayer;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.Fixture;
import com.badlogic.gdx.physics.box2d.Joint;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Pools;
import com.badlogic.gdx.utils.reflect.ClassReflection;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryonet.Connection;
import com.esotericsoftware.kryonet.Listener;
import com.esotericsoftware.minlog.Log;
import net.dermetfan.gdx.physics.box2d.WorldObserver;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.UpdateRequest;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.UpdateRequest.Refusal;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Change;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Creation;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Destruction;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Update;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.body.BodyChange;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.body.BodyCreation;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.fixture.FixtureChange;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.fixture.FixtureCreation;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.joint.JointChange;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.joint.JointCreation;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.world.WorldChange;
import net.dermetfan.gdx.physics.box2d.Box2DUtils;
import net.dermetfan.gdx.utils.DualIntObjectMap;
import net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.Packet;
import static com.esotericsoftware.minlog.Log.TRACE;
public class WorldHost extends Listener implements WorldObserver.Listener {
/** @param kryo the Kryo to register the classes needed with */
public static void registerClasses(Kryo kryo) {
// packets
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.UpdateRequest.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.UpdateRequest.Refusal.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.UpdateProposal.class);
// updates
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Update.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Change.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Creation.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.Destruction.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.world.WorldChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.body.BodyChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.body.BodyCreation.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.fixture.FixtureChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.fixture.FixtureCreation.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.joint.JointChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.kryonet.multiplayer.packets.updates.joint.JointCreation.class);
// WorldObserver
kryo.register(net.dermetfan.gdx.physics.box2d.WorldObserver.Change.class);
kryo.register(net.dermetfan.gdx.physics.box2d.WorldObserver.WorldChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.WorldObserver.BodyChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.WorldObserver.FixtureChange.class);
kryo.register(net.dermetfan.gdx.physics.box2d.WorldObserver.JointChange.class);
// Box2D
kryo.register(com.badlogic.gdx.physics.box2d.Transform.class);
kryo.register(com.badlogic.gdx.physics.box2d.MassData.class);
kryo.register(com.badlogic.gdx.physics.box2d.BodyDef.class);
kryo.register(com.badlogic.gdx.physics.box2d.BodyDef.BodyType.class);
kryo.register(com.badlogic.gdx.physics.box2d.Filter.class);
kryo.register(com.badlogic.gdx.physics.box2d.Shape.Type.class);
kryo.register(com.badlogic.gdx.physics.box2d.JointDef.class);
// libGDX
kryo.register(com.badlogic.gdx.math.Vector2.class);
// java
kryo.register(float[].class);
kryo.register(Class.class);
}
private final Array clients = new Array<>(30);
private final DualIntObjectMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy