31 lines
755 B
Java
31 lines
755 B
Java
package net.minecraft.client;
|
|
|
|
import com.mojang.blaze3d.platform.InputConstants.Type;
|
|
import java.util.function.BooleanSupplier;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class ToggleKeyMapping extends KeyMapping {
|
|
private final BooleanSupplier needsToggle;
|
|
|
|
public ToggleKeyMapping(String name, int keyCode, String category, BooleanSupplier needsToggle) {
|
|
super(name, Type.KEYSYM, keyCode, category);
|
|
this.needsToggle = needsToggle;
|
|
}
|
|
|
|
@Override
|
|
public void setDown(boolean value) {
|
|
if (this.needsToggle.getAsBoolean()) {
|
|
if (value) {
|
|
super.setDown(!this.isDown());
|
|
}
|
|
} else {
|
|
super.setDown(value);
|
|
}
|
|
}
|
|
|
|
protected void reset() {
|
|
super.setDown(false);
|
|
}
|
|
}
|