mirror of
https://github.com/MovingBlocks/Terasology
synced 2026-05-24 09:28:22 +00:00
feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (#4898)
This commit is contained in:
parent
502985ef9d
commit
1f0349f4d6
201 changed files with 464 additions and 341 deletions
|
|
@ -7,24 +7,25 @@
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.event.AbstractConsumableEvent;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventReceiver;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystemImpl;
|
||||
import org.terasology.engine.entitySystem.metadata.ComponentLibrary;
|
||||
import org.terasology.engine.entitySystem.metadata.EntitySystemLibrary;
|
||||
import org.terasology.engine.entitySystem.prefab.internal.PojoPrefabManager;
|
||||
import org.terasology.unittest.stubs.IntegerComponent;
|
||||
import org.terasology.unittest.stubs.StringComponent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.persistence.typeHandling.TypeHandlerLibraryImpl;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.unittest.stubs.IntegerComponent;
|
||||
import org.terasology.unittest.stubs.StringComponent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -250,7 +251,8 @@ public static class TestHighPriorityEventHandler extends BaseComponentSystem {
|
|||
|
||||
List<Received> receivedList = Lists.newArrayList();
|
||||
|
||||
@ReceiveEvent(components = StringComponent.class, priority = EventPriority.PRIORITY_HIGH)
|
||||
@Priority(EventPriority.PRIORITY_HIGH)
|
||||
@ReceiveEvent(components = StringComponent.class)
|
||||
public void handleStringEvent(TestEvent event, EntityRef entity) {
|
||||
receivedList.add(new Received(event, entity));
|
||||
if (cancel) {
|
||||
|
|
@ -258,7 +260,8 @@ public void handleStringEvent(TestEvent event, EntityRef entity) {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = IntegerComponent.class, priority = EventPriority.PRIORITY_HIGH)
|
||||
@Priority(EventPriority.PRIORITY_HIGH)
|
||||
@ReceiveEvent(components = IntegerComponent.class)
|
||||
public void handleIntegerEvent(TestEvent event, EntityRef entity) {
|
||||
receivedList.add(new Received(event, entity));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.logic.characters.events.CreateVisualCharacterEvent;
|
||||
import org.terasology.engine.logic.players.LocalPlayer;
|
||||
import org.terasology.engine.registry.InjectionHelper;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.engine.core.Time;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
|
|||
|
|
@ -11,15 +11,16 @@
|
|||
import org.joml.Vector4fc;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.metadata.EntitySystemLibrary;
|
||||
import org.terasology.engine.entitySystem.metadata.EventMetadata;
|
||||
import org.terasology.engine.persistence.serializers.EventSerializer;
|
||||
import org.terasology.engine.persistence.typeHandling.TypeHandlerLibraryImpl;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.protobuf.EntityData;
|
||||
import org.terasology.reflection.ModuleTypeRegistry;
|
||||
|
|
@ -27,7 +28,6 @@
|
|||
import org.terasology.reflection.metadata.FieldMetadata;
|
||||
import org.terasology.reflection.reflect.ReflectFactory;
|
||||
import org.terasology.reflection.reflect.ReflectionReflectFactory;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.event.AbstractConsumableEvent;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystem;
|
||||
import org.terasology.engine.entitySystem.metadata.EntitySystemLibrary;
|
||||
import org.terasology.engine.entitySystem.prefab.internal.PojoPrefabManager;
|
||||
|
|
@ -25,6 +23,8 @@
|
|||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.persistence.typeHandling.TypeHandlerLibraryImpl;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.reflection.TypeRegistry;
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnChangedComponent;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventReceiver;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystem;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
|
|
@ -39,6 +37,8 @@
|
|||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.unittest.stubs.ForceBlockActiveComponent;
|
||||
import org.terasology.unittest.stubs.IntegerComponent;
|
||||
import org.terasology.unittest.stubs.RetainedOnBlockChangeComponent;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
import org.mockito.ArgumentCaptor;
|
||||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.world.BlockEntityRegistry;
|
||||
import org.terasology.engine.world.block.BeforeDeactivateBlocks;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
|
|
@ -30,6 +29,7 @@
|
|||
import org.terasology.fixtures.TestChunkStore;
|
||||
import org.terasology.fixtures.TestStorageManager;
|
||||
import org.terasology.fixtures.TestWorldGenerator;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
import org.terasology.engine.core.subsystem.config.BindsManager;
|
||||
import org.terasology.engine.core.subsystem.headless.device.TimeSystem;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.systems.internal.DoNotAutoRegister;
|
||||
import org.terasology.engine.input.BindButtonEvent;
|
||||
import org.terasology.engine.input.BindableButton;
|
||||
|
|
@ -30,6 +29,7 @@
|
|||
import org.terasology.engine.recording.DirectionAndOriginPosRecorderList;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.InjectionHelper;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.input.Keyboard.Key;
|
||||
import org.terasology.input.Keyboard.KeyId;
|
||||
import org.terasology.input.device.CharKeyboardAction;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
import org.terasology.engine.audio.events.PlaySoundEvent;
|
||||
import org.terasology.engine.audio.events.PlaySoundForOwnerEvent;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.entitySystem.systems.UpdateSubscriberSystem;
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.utilities.Assets;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* This system handles receiving the PlaySound events and activating the AudioManager to play them
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EngineEntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystem;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystemImpl;
|
||||
import org.terasology.engine.entitySystem.metadata.ComponentLibrary;
|
||||
|
|
@ -39,6 +38,7 @@
|
|||
import org.terasology.engine.recording.RecordingEventSystemDecorator;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.nui.properties.OneOfProviderFactory;
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
package org.terasology.engine.core.bootstrap.eventSystem;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventReceiver;
|
||||
import org.terasology.engine.entitySystem.event.internal.EventSystem;
|
||||
import org.terasology.engine.entitySystem.systems.ComponentSystem;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public abstract class AbstractEventSystemDecorator implements EventSystem {
|
||||
private final EventSystem eventSystem;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core.modes.loadProcesses;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
import org.terasology.engine.core.GameEngine;
|
||||
import org.terasology.engine.core.modes.GameState;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.world.WorldComponent;
|
||||
import org.terasology.engine.world.chunks.event.OnChunkLoaded;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* A system to send new chunk events to the current game state, which can be
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ public final class ExternalApiWhitelist {
|
|||
|
||||
private static final Set<String> GESTALT_ECS_PACKAGES = new ImmutableSet.Builder<String>()
|
||||
.add("org.terasology.gestalt.entitysystem.component")
|
||||
.add("org.terasology.gestalt.entitysystem.event")
|
||||
.build();
|
||||
|
||||
public static final Set<String> PACKAGES = new ImmutableSet.Builder<String>()
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
import org.terasology.engine.entitySystem.MutableComponentContainer;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EntityScope;
|
||||
import org.terasology.engine.entitySystem.entity.internal.NullEntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.sectors.SectorSimulationComponent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* A wrapper around an entity id providing access to common functionality
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.LowLevelEntityManager;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.sectors.SectorSimulationComponent;
|
||||
import org.terasology.engine.network.NetworkComponent;
|
||||
import org.terasology.engine.persistence.serializers.EntityDataJSONFormat;
|
||||
import org.terasology.engine.persistence.serializers.EntitySerializer;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
package org.terasology.engine.entitySystem.entity.internal;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* When a component is about to leave the active state, either due to being removed, the entity it is attached to being destroyed,
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* When a component is about to be removed from an entity, or an entity is about to be destroyed, this event is sent.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event occurs after an entity is created, an entity is loaded or a component is added to an entity. This occurs
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is sent when an entity is created or a component added to an existing entity.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event occurs whenever a component is changed and saved.
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
import gnu.trove.iterator.TFloatIterator;
|
||||
import gnu.trove.list.TFloatList;
|
||||
import gnu.trove.list.array.TFloatArrayList;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* A generic event for getting a value for a property.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* Additional for {@link ReceiveEvent}.
|
||||
* Activate performance monitoring for Event Handler.
|
||||
*/
|
||||
public @interface Activity {
|
||||
String value();
|
||||
}
|
||||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Immutable event to notify a change in a certain value.
|
||||
* <p>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* A consumable event is an event that can be prevented from continuing through remaining event receivers. This is
|
||||
* primarily useful for input event.
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
/**
|
||||
* Marker interface for classes that can be sent to entities as events
|
||||
*
|
||||
*/
|
||||
public interface Event {
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class PendingEvent {
|
||||
private EntityRef entity;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Provide priority possible for events. use with {@link ReceiveEvent}
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface Priority {
|
||||
int value();
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This annotation is used to mark up methods that can be registered to receive events through the EventSystem
|
||||
* <br><br>
|
||||
* These methods should have the form
|
||||
* <code>public void handlerMethod(EventType event, EntityRef entity)</code>
|
||||
*
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface ReceiveEvent {
|
||||
/**
|
||||
* What components that the entity must have for this method to be invoked
|
||||
*/
|
||||
Class<? extends Component>[] components() default {};
|
||||
|
||||
RegisterMode netFilter() default RegisterMode.ALWAYS;
|
||||
|
||||
int priority() default EventPriority.PRIORITY_NORMAL;
|
||||
|
||||
String activity() default "";
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
package org.terasology.engine.entitySystem.event.internal;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Interface for a single event receiver
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
package org.terasology.engine.entitySystem.event.internal;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.systems.ComponentSystem;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Event system propagates events to registered handlers
|
||||
|
|
@ -28,7 +28,7 @@ public interface EventSystem {
|
|||
void registerEvent(ResourceUrn uri, Class<? extends Event> eventType);
|
||||
|
||||
/**
|
||||
* Registers an object as an event handler - all methods with the {@link org.terasology.engine.entitySystem.event.ReceiveEvent}
|
||||
* Registers an object as an event handler - all methods with the {@link org.terasology.gestalt.entitysystem.event.ReceiveEvent}
|
||||
* annotation will be registered
|
||||
*
|
||||
* @param handler
|
||||
|
|
|
|||
|
|
@ -19,16 +19,20 @@
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.AbstractConsumableEvent;
|
||||
import org.terasology.engine.entitySystem.event.Activity;
|
||||
import org.terasology.engine.entitySystem.event.ConsumableEvent;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.PendingEvent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.systems.ComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.NetFilterEvent;
|
||||
import org.terasology.engine.monitoring.PerformanceMonitor;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Arrays;
|
||||
|
|
@ -99,9 +103,26 @@ public void registerEventHandler(ComponentSystem handler) {
|
|||
for (Method method : handlerClass.getMethods()) {
|
||||
ReceiveEvent receiveEventAnnotation = method.getAnnotation(ReceiveEvent.class);
|
||||
if (receiveEventAnnotation != null) {
|
||||
if (!receiveEventAnnotation.netFilter().isValidFor(isAutority, false)) {
|
||||
|
||||
NetFilterEvent netFilterAnnotation = method.getAnnotation(NetFilterEvent.class);
|
||||
if (netFilterAnnotation != null && !netFilterAnnotation.netFilter().isValidFor(isAutority, false)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int priority;
|
||||
Priority priorityAnnotation = method.getAnnotation(Priority.class);
|
||||
if (priorityAnnotation != null) {
|
||||
priority = priorityAnnotation.value();
|
||||
} else {
|
||||
priority = EventPriority.PRIORITY_NORMAL;
|
||||
}
|
||||
|
||||
String activity = null;
|
||||
Activity activityAnnotation = method.getAnnotation(Activity.class);
|
||||
if (activityAnnotation != null) {
|
||||
activity = activityAnnotation.value();
|
||||
}
|
||||
|
||||
Set<Class<? extends Component>> requiredComponents = Sets.newLinkedHashSet();
|
||||
method.setAccessible(true);
|
||||
Class<?>[] types = method.getParameterTypes();
|
||||
|
|
@ -123,10 +144,9 @@ public void registerEventHandler(ComponentSystem handler) {
|
|||
requiredComponents.add((Class<? extends Component>) types[i]);
|
||||
componentParams.add((Class<? extends Component>) types[i]);
|
||||
}
|
||||
|
||||
ByteCodeEventHandlerInfo handlerInfo = new ByteCodeEventHandlerInfo(handler, method,
|
||||
receiveEventAnnotation.priority(),
|
||||
receiveEventAnnotation.activity(), requiredComponents, componentParams);
|
||||
priority,
|
||||
activity, requiredComponents, componentParams);
|
||||
addEventHandler((Class<? extends Event>) types[0], handlerInfo, requiredComponents);
|
||||
}
|
||||
}
|
||||
|
|
@ -333,7 +353,7 @@ private static class ByteCodeEventHandlerInfo implements EventHandlerInfo {
|
|||
ByteCodeEventHandlerInfo(ComponentSystem handler,
|
||||
Method method,
|
||||
int priority,
|
||||
String activity,
|
||||
@Nullable String activity,
|
||||
Collection<Class<? extends Component>> filterComponents,
|
||||
Collection<Class<? extends Component>> componentParams) {
|
||||
|
||||
|
|
@ -372,13 +392,13 @@ public void invoke(EntityRef entity, Event event) {
|
|||
}
|
||||
|
||||
|
||||
if (!activity.isEmpty()) {
|
||||
if (activity != null) {
|
||||
PerformanceMonitor.startActivity(activity);
|
||||
}
|
||||
try {
|
||||
methodAccess.invoke(handler, methodIndex, params);
|
||||
} finally {
|
||||
if (!activity.isEmpty()) {
|
||||
if (activity != null) {
|
||||
PerformanceMonitor.endActivity();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.reflection.copy.CopyStrategyLibrary;
|
||||
import org.terasology.reflection.metadata.ClassMetadata;
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@
|
|||
import com.google.common.base.Predicates;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.reflection.metadata.ClassMetadata;
|
||||
import org.terasology.reflection.copy.CopyStrategyLibrary;
|
||||
import org.terasology.reflection.reflect.InaccessibleFieldException;
|
||||
import org.terasology.reflection.reflect.ReflectFactory;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.BroadcastEvent;
|
||||
import org.terasology.engine.network.OwnerEvent;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.reflection.copy.CopyStrategyLibrary;
|
||||
import org.terasology.reflection.metadata.ClassMetadata;
|
||||
import org.terasology.reflection.reflect.InaccessibleFieldException;
|
||||
import org.terasology.reflection.reflect.ReflectFactory;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.entitySystem.sectors;
|
||||
|
||||
import org.joml.Vector3i;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
import java.util.Set;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.sectors;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Event sent to sector-scope entities when the first of its watched chunks load.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.sectors;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Event sent to sector-scope entities when all of its watched chunks unload.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.entitySystem.sectors;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeRemoveComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnChangedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.delay.DelayManager;
|
||||
|
|
@ -20,6 +19,7 @@
|
|||
import org.terasology.engine.world.chunks.ChunkProvider;
|
||||
import org.terasology.engine.world.chunks.event.BeforeChunkUnload;
|
||||
import org.terasology.engine.world.chunks.event.OnChunkLoaded;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package org.terasology.engine.entitySystem.systems;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Marks event handlers condition. when should be registered. {@link RegisterMode}
|
||||
* Using with {@link org.terasology.gestalt.entitysystem.event.ReceiveEvent}
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface NetFilterEvent {
|
||||
|
||||
RegisterMode netFilter();
|
||||
}
|
||||
|
|
@ -12,8 +12,8 @@
|
|||
* In most cases it will be sufficient to:
|
||||
* <ul>
|
||||
* <li>
|
||||
* use {@link org.terasology.engine.entitySystem.event.ReceiveEvent}
|
||||
* to update the system on specific events ({@link org.terasology.engine.entitySystem.event.Event}),
|
||||
* use {@link org.terasology.gestalt.entitysystem.event.ReceiveEvent}
|
||||
* to update the system on specific events ({@link org.terasology.gestalt.entitysystem.event.Event}),
|
||||
* </li>
|
||||
* <li>
|
||||
* use {@link DelayManager} to update entities or to call a
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.input.cameraTarget;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Event when the camera ceases to be over an entity - sent to the involved entity
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.input.cameraTarget;
|
||||
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is sent when the camera starts pointing at a target, to the target
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
package org.terasology.engine.input.cameraTarget;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class CameraTargetChangedEvent implements Event {
|
||||
private EntityRef oldTarget;
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@
|
|||
import org.terasology.engine.audio.AudioManager;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.players.LocalPlayer;
|
||||
import org.terasology.engine.logic.characters.events.ActivationPredicted;
|
||||
import org.terasology.engine.logic.common.ActivateEvent;
|
||||
import org.terasology.engine.logic.players.LocalPlayer;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.utilities.random.FastRandom;
|
||||
import org.terasology.engine.utilities.random.Random;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* This systems handles the playing of sounds in response to events, on both server and client,
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
import org.joml.Vector3f;
|
||||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.common.ActivateEvent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
@RegisterSystem(RegisterMode.AUTHORITY)
|
||||
public class SpawnPrefabAction extends BaseComponentSystem {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
import org.terasology.engine.core.Time;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -16,6 +15,7 @@
|
|||
import org.terasology.engine.network.events.ConnectedEvent;
|
||||
import org.terasology.engine.network.events.DisconnectedEvent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
@RegisterSystem(RegisterMode.AUTHORITY)
|
||||
public class AfkAuthoritySystem extends BaseComponentSystem {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
import org.terasology.engine.core.Time;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
import org.terasology.engine.physics.events.MovedEvent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.rendering.nui.NUIManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.input.Keyboard;
|
||||
|
||||
@RegisterSystem(RegisterMode.CLIENT)
|
||||
|
|
@ -125,7 +126,8 @@ public void onMove(MovedEvent movedEvent, EntityRef entity) {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_HIGH)
|
||||
@Priority(EventPriority.PRIORITY_HIGH)
|
||||
@ReceiveEvent
|
||||
public void onKeyDown(KeyDownEvent event, EntityRef entity) {
|
||||
if (requireConnection()) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabManager;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
import org.terasology.engine.registry.Share;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabManager;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
|
|
@ -26,6 +25,7 @@
|
|||
import org.terasology.engine.registry.Share;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
|
|
|
|||
|
|
@ -4,15 +4,15 @@
|
|||
package org.terasology.engine.logic.behavior.nui;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.input.ButtonState;
|
||||
import org.terasology.engine.logic.console.Console;
|
||||
import org.terasology.engine.logic.console.CoreMessageType;
|
||||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.input.ButtonState;
|
||||
|
||||
@RegisterSystem(RegisterMode.REMOTE_CLIENT)
|
||||
public class BehaviorTreeClientSystem extends BaseComponentSystem {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
package org.terasology.engine.logic.behavior.nui;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.input.ButtonState;
|
||||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.rendering.nui.NUIManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.input.ButtonState;
|
||||
|
||||
/**
|
||||
* Opens the bt editor screen.
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@
|
|||
package org.terasology.engine.logic.characters;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.characters.events.ChangeHeldItemRequest;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
@RegisterSystem(RegisterMode.AUTHORITY)
|
||||
public class CharacterHeldItemAuthoritySystem extends BaseComponentSystem {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.characters;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class CharacterImpulseEvent implements Event {
|
||||
Vector3f direction;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,14 @@
|
|||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.characters.events.OnScaleEvent;
|
||||
import org.terasology.engine.logic.characters.events.ScaleByRequest;
|
||||
import org.terasology.engine.logic.characters.events.ScaleToRequest;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* Authority system to finally "accept" scaling requests.
|
||||
|
|
@ -26,14 +27,16 @@
|
|||
@RegisterSystem(RegisterMode.AUTHORITY)
|
||||
public class CharacterScalingSystem extends BaseComponentSystem {
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_TRIVIAL)
|
||||
@Priority(EventPriority.PRIORITY_TRIVIAL)
|
||||
@ReceiveEvent
|
||||
public void onScaleByRequest(ScaleByRequest request, EntityRef entity, CharacterMovementComponent movementComponent) {
|
||||
OnScaleEvent scaleEvent = new OnScaleEvent(movementComponent.height, movementComponent.height * request.getFactor());
|
||||
entity.send(scaleEvent);
|
||||
request.consume();
|
||||
}
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_TRIVIAL)
|
||||
@Priority(EventPriority.PRIORITY_TRIVIAL)
|
||||
@ReceiveEvent
|
||||
public void onScaleToRequest(ScaleToRequest request, EntityRef entity, CharacterMovementComponent movementComponent) {
|
||||
OnScaleEvent scaleEvent = new OnScaleEvent(movementComponent.height, request.getTargetValue());
|
||||
entity.send(scaleEvent);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
import org.terasology.engine.audio.events.PlaySoundEvent;
|
||||
import org.terasology.engine.core.Time;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -29,6 +28,7 @@
|
|||
import org.terasology.engine.utilities.random.Random;
|
||||
import org.terasology.engine.world.WorldProvider;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,10 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.NetFilterEvent;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.entitySystem.systems.UpdateSubscriberSystem;
|
||||
|
|
@ -49,6 +50,7 @@
|
|||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.world.block.BlockComponent;
|
||||
import org.terasology.engine.world.block.regions.ActAsBlockComponent;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
@ -168,7 +170,8 @@ public String getDamageTypeName(Prefab damageType) {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = CharacterComponent.class, netFilter = RegisterMode.CLIENT)
|
||||
@NetFilterEvent(netFilter = RegisterMode.CLIENT)
|
||||
@ReceiveEvent(components = CharacterComponent.class)
|
||||
public void onAttackRequest(AttackButton event, EntityRef entity, CharacterHeldItemComponent characterHeldItemComponent) {
|
||||
if (!event.isDown()) {
|
||||
return;
|
||||
|
|
@ -191,7 +194,8 @@ public void onAttackRequest(AttackButton event, EntityRef entity, CharacterHeldI
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = LocationComponent.class, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent(components = LocationComponent.class)
|
||||
public void onAttackRequest(AttackRequest event, EntityRef character, CharacterComponent characterComponent) {
|
||||
// if an item is used, make sure this entity is allowed to attack with it
|
||||
if (event.getItem().exists()) {
|
||||
|
|
@ -254,17 +258,22 @@ public void onItemUse(OnItemUseEvent event, EntityRef entity, CharacterHeldItemC
|
|||
entity.saveComponent(characterHeldItemComponent);
|
||||
}
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_TRIVIAL, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@Priority(EventPriority.PRIORITY_TRIVIAL)
|
||||
@ReceiveEvent
|
||||
public void onAttackBlock(AttackEvent event, EntityRef entityRef, BlockComponent blockComponent) {
|
||||
entityRef.send(new DestroyEvent(event.getInstigator(), event.getDirectCause(), EngineDamageTypes.PHYSICAL.get()));
|
||||
}
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_TRIVIAL, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@Priority(EventPriority.PRIORITY_TRIVIAL)
|
||||
@ReceiveEvent
|
||||
public void onAttackBlock(AttackEvent event, EntityRef entityRef, ActAsBlockComponent actAsBlockComponent) {
|
||||
entityRef.send(new DestroyEvent(event.getInstigator(), event.getDirectCause(), EngineDamageTypes.PHYSICAL.get()));
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = {CharacterComponent.class, LocationComponent.class}, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent(components = {CharacterComponent.class, LocationComponent.class})
|
||||
public void onActivationRequest(ActivationRequest event, EntityRef character) {
|
||||
if (isPredictionOfEventCorrect(character, event)) {
|
||||
OnItemUseEvent onItemUseEvent = new OnItemUseEvent();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.characters;
|
||||
|
||||
import org.joml.Vector3fc;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Used within the server to trigger a teleport of a character. Just chaining the position is not possible due to
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeDeactivateComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.utilities.collection.CircularBuffer;
|
||||
import org.terasology.engine.world.WorldProvider;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Deque;
|
||||
import java.util.Iterator;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
import org.terasology.engine.logic.location.Location;
|
||||
import org.terasology.engine.logic.location.LocationComponent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* Gaze describes where the character is looking.
|
||||
|
|
@ -51,7 +52,8 @@ private EntityRef createGazeEntity() {
|
|||
return gazeEntity;
|
||||
}
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_LOW)
|
||||
@Priority(EventPriority.PRIORITY_LOW)
|
||||
@ReceiveEvent
|
||||
public void onScaleCharacter(OnScaleEvent event, EntityRef entity, GazeMountPointComponent gazeMountPoint) {
|
||||
// adjust character eye level
|
||||
// set eye level based on "average" body decomposition for human-like figures into 7.5 "heads".
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeDeactivateComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
|
|
@ -32,6 +31,7 @@
|
|||
import org.terasology.engine.registry.Share;
|
||||
import org.terasology.engine.utilities.collection.CircularBuffer;
|
||||
import org.terasology.engine.world.WorldProvider;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeDeactivateComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
import org.terasology.engine.logic.players.LocalPlayer;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* This system is responsible for sending a {@link CreateVisualCharacterEvent} according to how it is specified in
|
||||
|
|
@ -104,7 +105,8 @@ public void onAwaitedLocalCharacterSpawnEvent(AwaitedLocalCharacterSpawnEvent ev
|
|||
}
|
||||
|
||||
|
||||
@ReceiveEvent(priority = EventPriority.PRIORITY_TRIVIAL)
|
||||
@Priority(EventPriority.PRIORITY_TRIVIAL)
|
||||
@ReceiveEvent
|
||||
public void onCreateDefaultVisualCharacter(CreateVisualCharacterEvent event, EntityRef characterEntity) {
|
||||
Prefab prefab = assetManager.getAsset("engine:defaultVisualCharacter", Prefab.class).get();
|
||||
EntityBuilder entityBuilder = event.getVisualCharacterBuilder();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is attached to the character.
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
@ServerEvent
|
||||
public class ChangeHeldItemRequest implements Event {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class CollisionEvent implements Event {
|
||||
private Vector3f velocity;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.OwnerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is sent to the client entity when the character dies.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class FootstepEvent implements Event {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class JumpEvent implements Event {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.joml.Vector3i;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event gets sent to the player entity when it enters a new block.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Immutable event to notify that a character entity is scaled.
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.OwnerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is sent to the player entity when the player dies.
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.logic.characters.MovementMode;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class SetMovementModeEvent implements Event {
|
||||
private MovementMode mode;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* This event is sent when a character moves far enough to trigger a swim stroke (similar to a footstep on land)
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.interactions;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.OwnerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Represents the end of an interaction between for example a character and a container.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.characters.interactions;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.characters.interactions;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Request the server to cancel the current interaction.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.characters.interactions;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -4,20 +4,21 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.NetFilterEvent;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.characters.CharacterComponent;
|
||||
import org.terasology.engine.logic.common.ActivateEvent;
|
||||
import org.terasology.engine.logic.characters.events.ActivationPredicted;
|
||||
import org.terasology.engine.logic.characters.events.ActivationRequestDenied;
|
||||
import org.terasology.engine.logic.common.ActivateEvent;
|
||||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.rendering.nui.NUIManager;
|
||||
import org.terasology.engine.rendering.nui.ScreenLayerClosedEvent;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
@RegisterSystem(RegisterMode.ALWAYS)
|
||||
public class InteractionSystem extends BaseComponentSystem {
|
||||
|
|
@ -26,7 +27,8 @@ public class InteractionSystem extends BaseComponentSystem {
|
|||
@In
|
||||
private NUIManager nuiManager;
|
||||
|
||||
@ReceiveEvent(components = InteractionTargetComponent.class, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent(components = InteractionTargetComponent.class)
|
||||
public void onActivate(ActivateEvent event, EntityRef target) {
|
||||
EntityRef instigator = event.getInstigator();
|
||||
|
||||
|
|
@ -64,12 +66,14 @@ public void onActivationPredicted(ActivationPredicted event, EntityRef target) {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = CharacterComponent.class, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent(components = CharacterComponent.class)
|
||||
public void onActivationRequestDenied(ActivationRequestDenied event, EntityRef character) {
|
||||
character.send(new InteractionEndEvent(event.getActivationId()));
|
||||
}
|
||||
|
||||
@ReceiveEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent
|
||||
public void onInteractionEndRequest(InteractionEndRequest request, EntityRef instigator) {
|
||||
InteractionUtil.cancelInteractionAsServer(instigator);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.input.binds.general.ChatButton;
|
||||
|
|
@ -26,6 +25,7 @@
|
|||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.rendering.nui.NUIManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.input.ButtonState;
|
||||
import org.terasology.nui.FontColor;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.entitySystem.systems.UpdateSubscriberSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
@RegisterSystem(RegisterMode.AUTHORITY)
|
||||
public class LifespanSystem extends BaseComponentSystem implements UpdateSubscriberSystem {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.console;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,9 @@
|
|||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.EventPriority;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.event.Priority;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.NetFilterEvent;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.input.binds.general.ConsoleButton;
|
||||
|
|
@ -14,6 +15,7 @@
|
|||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.rendering.nui.NUIManager;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
import org.terasology.input.ButtonState;
|
||||
|
||||
@RegisterSystem
|
||||
|
|
@ -43,7 +45,8 @@ public void initialise() {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = ClientComponent.class, priority = EventPriority.PRIORITY_CRITICAL)
|
||||
@Priority(EventPriority.PRIORITY_CRITICAL)
|
||||
@ReceiveEvent(components = ClientComponent.class)
|
||||
public void onToggleConsole(ConsoleButton event, EntityRef entity) {
|
||||
if (event.getState() == ButtonState.UP) {
|
||||
nuiManager.toggleScreen("engine:console");
|
||||
|
|
@ -60,7 +63,8 @@ public void onMessage(MessageEvent event, EntityRef entity) {
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(components = ClientComponent.class, netFilter = RegisterMode.AUTHORITY)
|
||||
@NetFilterEvent(netFilter = RegisterMode.AUTHORITY)
|
||||
@ReceiveEvent(components = ClientComponent.class)
|
||||
public void onCommand(CommandEvent event, EntityRef entity) {
|
||||
ConsoleCommand cmd = console.getCommand(event.getCommandName());
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.logic.console;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface MessageEvent extends Event {
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.world.WorldComponent;
|
||||
import org.terasology.engine.world.chunks.event.BeforeChunkUnload;
|
||||
import org.terasology.engine.world.chunks.event.OnChunkLoaded;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeDeactivateComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.entitySystem.systems.UpdateSubscriberSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.registry.Share;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.delay;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class DelayedActionTriggeredEvent implements Event {
|
||||
private String actionId;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.delay;
|
||||
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
public class PeriodicActionTriggeredEvent implements Event {
|
||||
private String actionId;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
package org.terasology.engine.logic.health;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Sent to request the destruction of an entity.
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
package org.terasology.engine.logic.health;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Sent when the entity is destroyed.
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
package org.terasology.engine.logic.health;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.logic.characters.CharacterComponent;
|
||||
import org.terasology.engine.telemetry.GamePlayStatsComponent;
|
||||
import org.terasology.engine.world.block.BlockComponent;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnActivatedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnChangedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.rendering.iconmesh.IconMeshFactory;
|
||||
|
|
@ -18,6 +17,7 @@
|
|||
import org.terasology.engine.utilities.random.Random;
|
||||
import org.terasology.engine.world.block.family.BlockFamily;
|
||||
import org.terasology.engine.world.block.items.BlockItemComponent;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* This system adds meshes to items that have RenderItemBlockMeshComponent or RenderItemIconMeshComponent
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
import org.terasology.engine.core.Time;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.metadata.EntitySystemLibrary;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
import org.terasology.engine.world.block.family.BlockFamily;
|
||||
import org.terasology.engine.world.block.items.BlockItemComponent;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
/**
|
||||
* This system uses the pickup prefab on an item component to add on extra components needed for the item to display in the world.
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
import org.joml.Vector3f;
|
||||
import org.joml.Vector3fc;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Fire this event on an item in order for the authority to add the necessary components to put it in the world.
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
package org.terasology.engine.logic.inventory.events;
|
||||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.ServerEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* Gives the entity to the target entity
|
||||
|
|
|
|||
|
|
@ -8,10 +8,11 @@
|
|||
import org.joml.Vector3fc;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.BeforeRemoveComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.NetFilterEvent;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
|
|
@ -117,7 +118,8 @@ public void onDestroyed(BeforeRemoveComponent event, EntityRef entity, LocationC
|
|||
}
|
||||
}
|
||||
|
||||
@ReceiveEvent(netFilter = RegisterMode.REMOTE_CLIENT)
|
||||
@NetFilterEvent(netFilter = RegisterMode.REMOTE_CLIENT)
|
||||
@ReceiveEvent
|
||||
public void onResyncLocation(LocationResynchEvent event, EntityRef entityRef, LocationComponent locationComponent) {
|
||||
locationComponent.setWorldPosition(event.getPosition());
|
||||
locationComponent.setWorldRotation(event.getRotation());
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
import org.joml.Quaternionfc;
|
||||
import org.joml.Vector3f;
|
||||
import org.joml.Vector3fc;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
/**
|
||||
* A <i>notification event</i> that the location and/or rotation of the associated entity has changed.
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnAddedComponent;
|
||||
import org.terasology.engine.entitySystem.entity.lifecycleEvents.OnChangedComponent;
|
||||
import org.terasology.engine.entitySystem.event.ReceiveEvent;
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterMode;
|
||||
import org.terasology.engine.entitySystem.systems.RegisterSystem;
|
||||
import org.terasology.engine.entitySystem.systems.UpdateSubscriberSystem;
|
||||
import org.terasology.gestalt.entitysystem.event.ReceiveEvent;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.network.BroadcastEvent;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
|
||||
@BroadcastEvent
|
||||
public class LocationResynchEvent implements Event {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue