Skip to content

Commit

Permalink
Using EntityUpdateBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
guidota committed May 20, 2019
1 parent 65be6d1 commit 011468d
Show file tree
Hide file tree
Showing 12 changed files with 32 additions and 22 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified desktop/assets/data/ui/images/background.jpg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 11 additions & 8 deletions server/src/server/combat/MagicCombatSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,20 +89,19 @@ private void castSpell(int playerId, int target, Spell spell) {
EntityUpdateBuilder victimUpdateBuilder = EntityUpdateBuilder.of(target);
EntityUpdateBuilder victimUpdateToAllBuilder = EntityUpdateBuilder.of(target);

if (stamina.min < requiredStamina) {
notifyInfo(playerId, NOT_ENOUGH_ENERGY);
return;
} else {
stamina.min -= requiredStamina;
playerUpdateBuilder.withComponents(stamina);
}


if (mana.min > requiredMana) {
if (!isValid(target, spell)) {
notifyInfo(playerId, INVALID_TARGET);
return;
}

if (stamina.min < requiredStamina) {
notifyInfo(playerId, NOT_ENOUGH_ENERGY);
return;
}

if (playerId == target) {
if (spell.getSumHP() == 2 || spell.isImmobilize() || spell.isParalyze()) {
notifyMagic(playerId, CANT_ATTACK_YOURSELF);
Expand Down Expand Up @@ -158,6 +157,9 @@ private void castSpell(int playerId, int target, Spell spell) {
getWorldManager().unregisterEntity(fxE);
}

stamina.min -= requiredStamina;
playerUpdateBuilder.withComponents(stamina);

updateMana(playerId, requiredMana, mana);
Dialog magicWords = new Dialog(spell.getMagicWords(), Dialog.Kind.MAGIC_WORDS);

Expand Down Expand Up @@ -199,7 +201,8 @@ private int calculateMagicDamage(int user, int target, Spell spell) {
private void updateMana(int playerId, int requiredMana, Mana mana) {
mana.min -= requiredMana;
// update mana
getWorldManager().sendEntityUpdate(playerId, new EntityUpdate(playerId, new Component[]{mana}, new Class[0]));
EntityUpdate update = EntityUpdateBuilder.of(playerId).withComponents(mana).build();
getWorldManager().sendEntityUpdate(playerId, update);
}

private boolean isValid(int target, Spell spell) {
Expand Down
8 changes: 4 additions & 4 deletions server/src/server/combat/PhysicalCombatSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,9 @@ void doHit(int userId, int entityId, int damage) {
notifyCombat(userId, result.userMessage);
notifyCombat(entityId, result.victimMessage);


getWorldManager()
.notifyUpdate(userId, new EntityUpdate(userId, new Component[]{new AttackAnimation()}, new Class[0]));
.notifyUpdate(userId, EntityUpdateBuilder.of(userId).withComponents(new AttackAnimation()).build());
notify(entityId, userStab ? CombatMessage.stab("" + result.damage) : CombatMessage.physic("" + result.damage));

final E target = E(entityId);
Expand Down Expand Up @@ -301,9 +302,8 @@ boolean isAttackable(int entityId) {
* @param combatMessage message
*/
private void notify(int victim, CombatMessage combatMessage) {
EntityUpdate update = new EntityUpdate(victim, new Component[]{combatMessage}, new Class[0]);
getServer().getWorldManager().sendEntityUpdate(victim, update);
getServer().getWorldManager().notifyToNearEntities(victim, update);
getServer().getWorldManager()
.notifyUpdate(victim, EntityUpdateBuilder.of(victim).withComponents(combatMessage).build());
}

/**
Expand Down
5 changes: 3 additions & 2 deletions server/src/server/network/ServerRequestProcessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import shared.network.movement.MovementRequest;
import shared.network.movement.MovementResponse;
import shared.network.notifications.EntityUpdate;
import shared.network.notifications.EntityUpdate.EntityUpdateBuilder;
import shared.network.time.TimeSyncRequest;
import shared.network.time.TimeSyncResponse;

Expand Down Expand Up @@ -142,7 +143,7 @@ public void processRequest(MovementRequest request, int connectionId) {
if (!nextPos.equals(oldPos)) {
getWorldManager().notifyToNearEntities(playerId, new MovementNotification(playerId, new Destination(nextPos, request.movement)));
} else {
getWorldManager().notifyToNearEntities(playerId, new EntityUpdate(playerId, new Component[]{player.getHeading()}, new Class[0])); // is necessary?
getWorldManager().notifyToNearEntities(playerId, EntityUpdateBuilder.of(playerId).withComponents(player.getHeading()).build()); // is necessary?
}

// notify user
Expand Down Expand Up @@ -210,7 +211,7 @@ public void processRequest(MeditateRequest meditateRequest, int connectionId) {
@Override
public void processRequest(TalkRequest talkRequest, int connectionId) {
int playerId = getNetworkManager().getPlayerByConnection(connectionId);
getWorldManager().notifyUpdate(playerId, new EntityUpdate(playerId, new Component[]{new Dialog(talkRequest.getMessage())}, new Class[0]));
getWorldManager().notifyUpdate(playerId, EntityUpdateBuilder.of(playerId).withComponents(new Dialog(talkRequest.getMessage())).build());
}

/**
Expand Down
2 changes: 1 addition & 1 deletion server/src/server/systems/MeditateSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ protected void process(E e) {
if (mana.min >= mana.max) {
e.removeFX();
e.removeMeditating();
notify.remove(FX.class,Meditating.class);
notify.remove(FX.class, Meditating.class);
ConsoleMessage consoleMessage = ConsoleMessage.info(MEDITATE_STOP);
server.getWorldManager().sendEntityUpdate(e.id(), consoleMessage);
}
Expand Down
4 changes: 3 additions & 1 deletion server/src/server/systems/RandomMovementSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import shared.model.map.Map;
import shared.network.movement.MovementNotification;
import shared.network.notifications.EntityUpdate;
import shared.network.notifications.EntityUpdate.EntityUpdateBuilder;

import java.util.*;

Expand Down Expand Up @@ -75,7 +76,8 @@ public void moveEntity(int entityId, AOPhysics.Movement mov) {
getServer().getMapManager().movePlayer(entityId, Optional.of(oldPos));

// notify near users
getServer().getWorldManager().notifyUpdate(entityId, new EntityUpdate(entityId, new Component[]{player.getHeading()}, new Class[0])); // is necessary?

getServer().getWorldManager().notifyUpdate(entityId, EntityUpdateBuilder.of(entityId).withComponents(player.getHeading()).build()); // is necessary?
if (nextPos != oldPos) {
getServer().getWorldManager().notifyUpdate(entityId, new MovementNotification(entityId, new Destination(nextPos, mov)));
}
Expand Down
4 changes: 3 additions & 1 deletion server/src/server/systems/ai/PathFindingSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

import static physics.AOPhysics.Movement.*;
import static server.utils.WorldUtils.WorldUtils;
import static shared.network.notifications.EntityUpdate.EntityUpdateBuilder.*;

public class PathFindingSystem extends IntervalFluidIteratingSystem {

Expand Down Expand Up @@ -135,7 +136,8 @@ private void moveEntity(int entityId, AOPhysics.Movement mov) {

WorldManager worldManager = world.getSystem(WorldManager.class);
// notify near users
worldManager.notifyUpdate(entityId, new EntityUpdate(entityId, new Component[]{player.getHeading()}, new Class[0])); // is necessary?
EntityUpdate update = of(entityId).withComponents(player.getHeading()).build();
worldManager.notifyUpdate(entityId, update); // is necessary?
if (nextPos != oldPos) {
worldManager.notifyUpdate(entityId, new MovementNotification(entityId, new Destination(nextPos, mov)));
}
Expand Down
4 changes: 3 additions & 1 deletion server/src/server/systems/manager/ItemManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import server.core.Server;
import shared.network.inventory.InventoryUpdate;
import shared.network.notifications.EntityUpdate;
import shared.network.notifications.EntityUpdate.EntityUpdateBuilder;
import shared.objects.types.Obj;
import shared.objects.types.ObjWithClasses;
import shared.objects.types.PotionObj;
Expand Down Expand Up @@ -88,7 +89,8 @@ public void use(int player, Inventory.Item item) {
break;
}
// Notify update to user
getServer().getWorldManager().sendEntityUpdate(player, new EntityUpdate(player, components.toArray(new Component[0]), new Class[0]));
EntityUpdate update = EntityUpdateBuilder.of(player).withComponents(components.toArray(new Component[0])).build();
getServer().getWorldManager().sendEntityUpdate(player, update);
// TODO remove from inventory
}
});
Expand Down
3 changes: 2 additions & 1 deletion server/src/server/systems/manager/MapManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import server.core.Server;
import server.map.CaveGenerator;
import shared.network.notifications.EntityUpdate;
import shared.network.notifications.EntityUpdate.EntityUpdateBuilder;
import shared.util.MapHelper;

import java.util.*;
Expand Down Expand Up @@ -221,7 +222,7 @@ private void unlinkEntities(int entity1, int entity2) {
private void linkEntities(int entity1, int entity2) {
Set<Integer> near = nearEntities.computeIfAbsent(entity1, (i) -> new HashSet<>());
if (near.add(entity2)) {
EntityUpdate update = new EntityUpdate(entity2, WorldUtils(getServer().getWorld()).getComponents(entity2), new Class[0]);
EntityUpdate update = EntityUpdateBuilder.of(entity2).withComponents(WorldUtils(getServer().getWorld()).getComponents(entity2)).build();
getServer().getWorldManager().sendEntityUpdate(entity1, update);
}
}
Expand Down
3 changes: 1 addition & 2 deletions server/src/server/systems/manager/WorldManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -631,13 +631,12 @@ public void userDie(int entityId) {
}

public void login(int connectionId, Player player) {

final int entity = createEntity(player.getPlayerName(), player.getHero(), player.getTeam());
List<Component> components = WorldUtils(getWorld()).getComponents(getWorld().getEntity(entity));
components.add(new Focused());
components.add(new AOPhysics());
components.add(new CanWrite());
getServer().getNetworkManager().sendTo(connectionId, new EntityUpdate(entity, components.toArray(new Component[0]), new Class[0]));
getServer().getNetworkManager().sendTo(connectionId, EntityUpdateBuilder.of(entity).withComponents(components.toArray(new Component[0])).build());
registerEntity(connectionId, entity);
}
}
2 changes: 1 addition & 1 deletion shared/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ fluid {
// preferences.swallowGettersWithParameters = false // global setting. overridden by @Fluid annotation.
}

compileJava.dependsOn fluid
//compileJava.dependsOn fluid

// Help intellIJ pick up the generated classes.
idea {
Expand Down

0 comments on commit 011468d

Please sign in to comment.