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;
}
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;
}
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;
}