Search in sources :

Example 1 with Frequency

use of ilargia.egdx.logicbricks.component.sensor.Frequency in project Entitas-Java by Rubentxu.

the class SensorSystem method process.

public void process(SensorEntity sensor, float deltaTime) {
    Link link = sensor.getLink();
    boolean lastPulse = link.pulse;
    link.pulse = query(sensor, deltaTime);
    if (sensor.hasFrequency()) {
        Frequency frequency = sensor.getFrequency();
        if ((frequency.time += deltaTime) >= frequency.tick) {
            if (sensor.hasMode()) {
                link.isOpen = link.isChanged || (sensor.getMode().type == link.pulse);
            } else {
                link.isOpen = link.isChanged;
            }
            frequency.time = 0;
        } else {
            link.isOpen = false;
        }
    } else {
        if (sensor.hasMode()) {
            link.isOpen = (lastPulse != link.pulse) || (sensor.getMode().type == link.pulse);
        } else {
            link.isOpen = lastPulse != link.pulse;
        }
    }
    link.isChanged = lastPulse != link.pulse;
}
Also used : Frequency(ilargia.egdx.logicbricks.component.sensor.Frequency) Link(ilargia.egdx.logicbricks.component.sensor.Link)

Example 2 with Frequency

use of ilargia.egdx.logicbricks.component.sensor.Frequency in project Entitas-Java by Rubentxu.

the class SensorEntity method addFrequency.

public SensorEntity addFrequency(float tick) {
    Frequency component = (Frequency) recoverComponent(SensorComponentsLookup.Frequency);
    if (component == null) {
        component = new Frequency(tick);
    } else {
        component.tick = tick;
    }
    addComponent(SensorComponentsLookup.Frequency, component);
    return this;
}
Also used : Frequency(ilargia.egdx.logicbricks.component.sensor.Frequency)

Example 3 with Frequency

use of ilargia.egdx.logicbricks.component.sensor.Frequency in project Entitas-Java by Rubentxu.

the class SensorEntity method replaceFrequency.

public SensorEntity replaceFrequency(float tick) {
    Frequency component = (Frequency) recoverComponent(SensorComponentsLookup.Frequency);
    if (component == null) {
        component = new Frequency(tick);
    } else {
        component.tick = tick;
    }
    replaceComponent(SensorComponentsLookup.Frequency, component);
    return this;
}
Also used : Frequency(ilargia.egdx.logicbricks.component.sensor.Frequency)

Aggregations

Frequency (ilargia.egdx.logicbricks.component.sensor.Frequency)3 Link (ilargia.egdx.logicbricks.component.sensor.Link)1