Added initial TechReborn compatibility to the EnergyAcceptor.
This commit is contained in:
+10
-4
@@ -34,6 +34,9 @@ repositories {
|
|||||||
maven {
|
maven {
|
||||||
name = "BuildCraft"
|
name = "BuildCraft"
|
||||||
url = "https://mod-buildcraft.com/maven"
|
url = "https://mod-buildcraft.com/maven"
|
||||||
|
content {
|
||||||
|
includeGroup "alexiil.mc.lib"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
maven {
|
maven {
|
||||||
name = "HYWLA"
|
name = "HYWLA"
|
||||||
@@ -42,10 +45,6 @@ repositories {
|
|||||||
includeGroup "mcp.mobius.waila"
|
includeGroup "mcp.mobius.waila"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maven {
|
|
||||||
name = 'Earthcomputer Mods'
|
|
||||||
url = 'https://dl.bintray.com/earthcomputer/mods'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
@@ -141,6 +140,10 @@ dependencies {
|
|||||||
include "alexiil.mc.lib:libblockattributes-items:${libblockattributes_version}"
|
include "alexiil.mc.lib:libblockattributes-items:${libblockattributes_version}"
|
||||||
include "alexiil.mc.lib:libblockattributes-fluids:${libblockattributes_version}"
|
include "alexiil.mc.lib:libblockattributes-fluids:${libblockattributes_version}"
|
||||||
|
|
||||||
|
// Energy API
|
||||||
|
modApi "teamreborn:energy:${tr_energy_version}"
|
||||||
|
include "teamreborn:energy:${tr_energy_version}"
|
||||||
|
|
||||||
modCompileOnly("me.shedaniel:RoughlyEnoughItems:5.0.2-unstable") {
|
modCompileOnly("me.shedaniel:RoughlyEnoughItems:5.0.2-unstable") {
|
||||||
exclude group: "net.fabricmc.fabric-api"
|
exclude group: "net.fabricmc.fabric-api"
|
||||||
}
|
}
|
||||||
@@ -150,6 +153,9 @@ dependencies {
|
|||||||
modRuntime("me.shedaniel:RoughlyEnoughItems:5.0.2-unstable") {
|
modRuntime("me.shedaniel:RoughlyEnoughItems:5.0.2-unstable") {
|
||||||
exclude group: "net.fabricmc.fabric-api"
|
exclude group: "net.fabricmc.fabric-api"
|
||||||
}
|
}
|
||||||
|
modRuntime("TechReborn:TechReborn-1.16:3.5.1+build.101") {
|
||||||
|
exclude group: "net.fabricmc.fabric-api"
|
||||||
|
}
|
||||||
// modRuntimeOnly "mcp.mobius.waila:Hwyla:1.16.1-1.9.22-75"
|
// modRuntimeOnly "mcp.mobius.waila:Hwyla:1.16.1-1.9.22-75"
|
||||||
|
|
||||||
implementation 'com.google.code.findbugs:jsr305:3.0.2'
|
implementation 'com.google.code.findbugs:jsr305:3.0.2'
|
||||||
|
|||||||
+2
-7
@@ -18,20 +18,15 @@ fabric_version=0.17.2+build.396-1.16
|
|||||||
|
|
||||||
loom_version=0.4-SNAPSHOT
|
loom_version=0.4-SNAPSHOT
|
||||||
|
|
||||||
# Mod Properties
|
|
||||||
mod_version = 1.0.0
|
|
||||||
maven_group = net.fabricmc
|
|
||||||
archives_base_name = fabric-example-mod
|
|
||||||
|
|
||||||
# Kotlin
|
# Kotlin
|
||||||
kotlin_version=1.3.61
|
kotlin_version=1.3.61
|
||||||
fabric_kotlin_version=1.3.61+build.1
|
fabric_kotlin_version=1.3.61+build.1
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
libblockattributes_version=0.7.1-pre.9
|
libblockattributes_version=0.7.1-pre.9
|
||||||
|
tr_energy_version=0.1.0
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Deployment #
|
# Deployment #
|
||||||
#########################################################
|
#########################################################
|
||||||
website_version=1.16.1
|
|
||||||
curse_versions=1.16.1
|
|
||||||
curseforge_project=223794
|
curseforge_project=223794
|
||||||
|
|||||||
@@ -27,21 +27,27 @@ import net.minecraft.text.Text;
|
|||||||
import net.minecraft.text.TranslatableText;
|
import net.minecraft.text.TranslatableText;
|
||||||
|
|
||||||
public enum PowerUnits {
|
public enum PowerUnits {
|
||||||
AE("gui.appliedenergistics2.units.appliedenergstics"), // Native Units - AE Energy
|
AE("gui.appliedenergistics2.units.appliedenergstics", "AE"), // Native Units - AE Energy
|
||||||
EU("gui.appliedenergistics2.units.ic2"), // IndustrialCraft 2 - Energy Units
|
EU("gui.appliedenergistics2.units.ic2", "EU"), // IndustrialCraft 2 - Energy Units
|
||||||
RF("gui.appliedenergistics2.units.rf"); // RF - Redstone Flux
|
TR("gui.appliedenergistics2.units.tr", "E"); // TR - TechReborn energy
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* unlocalized name for the power unit.
|
* unlocalized name for the power unit.
|
||||||
*/
|
*/
|
||||||
public final String unlocalizedName;
|
public final String unlocalizedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* unlocalized name for the power unit's symbol used to display values.
|
||||||
|
*/
|
||||||
|
public final String symbolName;
|
||||||
/**
|
/**
|
||||||
* please do not edit this value, it is set when AE loads its config files.
|
* please do not edit this value, it is set when AE loads its config files.
|
||||||
*/
|
*/
|
||||||
public double conversionRatio = 1.0;
|
public double conversionRatio = 1.0;
|
||||||
|
|
||||||
PowerUnits(final String un) {
|
PowerUnits(final String un, String symbolName) {
|
||||||
this.unlocalizedName = un;
|
this.unlocalizedName = un;
|
||||||
|
this.symbolName = symbolName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -64,4 +70,8 @@ public enum PowerUnits {
|
|||||||
return new TranslatableText(unlocalizedName);
|
return new TranslatableText(unlocalizedName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSymbolName() {
|
||||||
|
return symbolName;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,7 @@ public enum Settings {
|
|||||||
|
|
||||||
CONDENSER_OUTPUT(EnumSet.allOf(CondenserOutput.class)),
|
CONDENSER_OUTPUT(EnumSet.allOf(CondenserOutput.class)),
|
||||||
|
|
||||||
POWER_UNITS(EnumSet.allOf(PowerUnits.class)),
|
POWER_UNITS(EnumSet.of(PowerUnits.AE, PowerUnits.TR)),
|
||||||
|
|
||||||
ACCESS(EnumSet.of(AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE)),
|
ACCESS(EnumSet.of(AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE)),
|
||||||
|
|
||||||
|
|||||||
@@ -103,8 +103,8 @@ public class SettingToggleButton<T extends Enum<T>> extends IconButton {
|
|||||||
PowerUnits.AE.textComponent());
|
PowerUnits.AE.textComponent());
|
||||||
registerApp(16 * 10 + 1, Settings.POWER_UNITS, PowerUnits.EU, ButtonToolTips.PowerUnits,
|
registerApp(16 * 10 + 1, Settings.POWER_UNITS, PowerUnits.EU, ButtonToolTips.PowerUnits,
|
||||||
PowerUnits.EU.textComponent());
|
PowerUnits.EU.textComponent());
|
||||||
registerApp(16 * 10 + 4, Settings.POWER_UNITS, PowerUnits.RF, ButtonToolTips.PowerUnits,
|
registerApp(16 * 10 + 4, Settings.POWER_UNITS, PowerUnits.TR, ButtonToolTips.PowerUnits,
|
||||||
PowerUnits.RF.textComponent());
|
PowerUnits.TR.textComponent());
|
||||||
|
|
||||||
registerApp(3, Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE, ButtonToolTips.RedstoneMode,
|
registerApp(3, Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE, ButtonToolTips.RedstoneMode,
|
||||||
ButtonToolTips.AlwaysActive);
|
ButtonToolTips.AlwaysActive);
|
||||||
|
|||||||
@@ -18,22 +18,6 @@
|
|||||||
|
|
||||||
package appeng.core;
|
package appeng.core;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.EnumMap;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.DoubleSupplier;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
|
||||||
|
|
||||||
import appeng.api.config.CondenserOutput;
|
import appeng.api.config.CondenserOutput;
|
||||||
import appeng.api.config.PowerMultiplier;
|
import appeng.api.config.PowerMultiplier;
|
||||||
import appeng.api.config.PowerUnits;
|
import appeng.api.config.PowerUnits;
|
||||||
@@ -52,6 +36,21 @@ import appeng.core.config.IntegerOption;
|
|||||||
import appeng.core.config.StringListOption;
|
import appeng.core.config.StringListOption;
|
||||||
import appeng.core.settings.TickRates;
|
import appeng.core.settings.TickRates;
|
||||||
import appeng.util.EnumCycler;
|
import appeng.util.EnumCycler;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.DoubleSupplier;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public final class AEConfig {
|
public final class AEConfig {
|
||||||
|
|
||||||
@@ -87,7 +86,7 @@ public final class AEConfig {
|
|||||||
|
|
||||||
// Default Energy Conversion Rates
|
// Default Energy Conversion Rates
|
||||||
private static final double DEFAULT_IC2_EXCHANGE = 2.0;
|
private static final double DEFAULT_IC2_EXCHANGE = 2.0;
|
||||||
private static final double DEFAULT_RF_EXCHANGE = 0.5;
|
private static final double DEFAULT_TR_EXCHANGE = 2.0;
|
||||||
|
|
||||||
public static final String VERSION = "@version@";
|
public static final String VERSION = "@version@";
|
||||||
public static final String CHANNEL = "@aechannel@";
|
public static final String CHANNEL = "@aechannel@";
|
||||||
@@ -112,7 +111,6 @@ public final class AEConfig {
|
|||||||
private boolean useColoredCraftingStatus;
|
private boolean useColoredCraftingStatus;
|
||||||
private boolean disableColoredCableRecipesInJEI;
|
private boolean disableColoredCableRecipesInJEI;
|
||||||
private int craftingCalculationTimePerTick;
|
private int craftingCalculationTimePerTick;
|
||||||
private PowerUnits selectedPowerUnit = PowerUnits.AE;
|
|
||||||
|
|
||||||
// GUI Buttons
|
// GUI Buttons
|
||||||
private final int[] craftByStacks = new int[4];
|
private final int[] craftByStacks = new int[4];
|
||||||
@@ -157,9 +155,7 @@ public final class AEConfig {
|
|||||||
this.enableEffects = clientConfig.enableEffects.get();
|
this.enableEffects = clientConfig.enableEffects.get();
|
||||||
this.useLargeFonts = clientConfig.useLargeFonts.get();
|
this.useLargeFonts = clientConfig.useLargeFonts.get();
|
||||||
this.useColoredCraftingStatus = clientConfig.useColoredCraftingStatus.get();
|
this.useColoredCraftingStatus = clientConfig.useColoredCraftingStatus.get();
|
||||||
this.selectedPowerUnit = clientConfig.selectedPowerUnit.get();
|
|
||||||
|
|
||||||
// load buttons..
|
|
||||||
for (int btnNum = 0; btnNum < 4; btnNum++) {
|
for (int btnNum = 0; btnNum < 4; btnNum++) {
|
||||||
this.craftByStacks[btnNum] = clientConfig.craftByStacks.get(btnNum).get();
|
this.craftByStacks[btnNum] = clientConfig.craftByStacks.get(btnNum).get();
|
||||||
this.priorityByStacks[btnNum] = clientConfig.priorityByStacks.get(btnNum).get();
|
this.priorityByStacks[btnNum] = clientConfig.priorityByStacks.get(btnNum).get();
|
||||||
@@ -169,7 +165,7 @@ public final class AEConfig {
|
|||||||
|
|
||||||
private void syncCommonConfig() {
|
private void syncCommonConfig() {
|
||||||
PowerUnits.EU.conversionRatio = commonConfig.powerRatioIc2.get();
|
PowerUnits.EU.conversionRatio = commonConfig.powerRatioIc2.get();
|
||||||
PowerUnits.RF.conversionRatio = commonConfig.powerRatioForgeEnergy.get();
|
PowerUnits.TR.conversionRatio = commonConfig.powerRatioTechReborn.get();
|
||||||
PowerMultiplier.CONFIG.multiplier = commonConfig.powerUsageMultiplier.get();
|
PowerMultiplier.CONFIG.multiplier = commonConfig.powerUsageMultiplier.get();
|
||||||
|
|
||||||
CondenserOutput.MATTER_BALLS.requiredPower = commonConfig.condenserMatterBallsPower.get();
|
CondenserOutput.MATTER_BALLS.requiredPower = commonConfig.condenserMatterBallsPower.get();
|
||||||
@@ -271,7 +267,6 @@ public final class AEConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void save() {
|
public void save() {
|
||||||
clientConfig.selectedPowerUnit.set(this.selectedPowerUnit);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -299,7 +294,7 @@ public final class AEConfig {
|
|||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void nextPowerUnit(final boolean backwards) {
|
public void nextPowerUnit(final boolean backwards) {
|
||||||
PowerUnits selectedPowerUnit = EnumCycler.rotateEnum(this.selectedPowerUnit, backwards,
|
PowerUnits selectedPowerUnit = EnumCycler.rotateEnum(getSelectedPowerUnit(), backwards,
|
||||||
(EnumSet<PowerUnits>) Settings.POWER_UNITS.getPossibleValues());
|
(EnumSet<PowerUnits>) Settings.POWER_UNITS.getPossibleValues());
|
||||||
clientConfig.selectedPowerUnit.set(selectedPowerUnit);
|
clientConfig.selectedPowerUnit.set(selectedPowerUnit);
|
||||||
}
|
}
|
||||||
@@ -373,6 +368,10 @@ public final class AEConfig {
|
|||||||
return () -> this.chargedStaffBattery;
|
return () -> this.chargedStaffBattery;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double getPowerTransactionLimitTechReborn() {
|
||||||
|
return commonConfig.powerTransactionLimitTechReborn.get();
|
||||||
|
}
|
||||||
|
|
||||||
public float getSpawnChargedChance() {
|
public float getSpawnChargedChance() {
|
||||||
return (float) commonConfig.spawnChargedChance.get();
|
return (float) commonConfig.spawnChargedChance.get();
|
||||||
}
|
}
|
||||||
@@ -494,9 +493,12 @@ public final class AEConfig {
|
|||||||
|
|
||||||
// Power Ratios
|
// Power Ratios
|
||||||
public final DoubleOption powerRatioIc2;
|
public final DoubleOption powerRatioIc2;
|
||||||
public final DoubleOption powerRatioForgeEnergy;
|
public final DoubleOption powerRatioTechReborn;
|
||||||
public final DoubleOption powerUsageMultiplier;
|
public final DoubleOption powerUsageMultiplier;
|
||||||
|
|
||||||
|
// How much TR energy can be transfered at most in one operation
|
||||||
|
public final DoubleOption powerTransactionLimitTechReborn;
|
||||||
|
|
||||||
// Condenser Power Requirement
|
// Condenser Power Requirement
|
||||||
public final IntegerOption condenserMatterBallsPower;
|
public final IntegerOption condenserMatterBallsPower;
|
||||||
public final IntegerOption condenserSingularityPower;
|
public final IntegerOption condenserSingularityPower;
|
||||||
@@ -578,9 +580,13 @@ public final class AEConfig {
|
|||||||
|
|
||||||
ConfigSection PowerRatios = root.subsection("PowerRatios");
|
ConfigSection PowerRatios = root.subsection("PowerRatios");
|
||||||
powerRatioIc2 = PowerRatios.addDouble("IC2", DEFAULT_IC2_EXCHANGE);
|
powerRatioIc2 = PowerRatios.addDouble("IC2", DEFAULT_IC2_EXCHANGE);
|
||||||
powerRatioForgeEnergy = PowerRatios.addDouble("ForgeEnergy", DEFAULT_RF_EXCHANGE);
|
powerRatioTechReborn = PowerRatios.addDouble("TechReborn", DEFAULT_TR_EXCHANGE);
|
||||||
powerUsageMultiplier = PowerRatios.addDouble("UsageMultiplier", 1.0, 0.01, Double.MAX_VALUE);
|
powerUsageMultiplier = PowerRatios.addDouble("UsageMultiplier", 1.0, 0.01, Double.MAX_VALUE);
|
||||||
|
|
||||||
|
ConfigSection integration = root.subsection("Integration");
|
||||||
|
powerTransactionLimitTechReborn = integration.addDouble("MaxTechRebornEnergyPerTransaction", 10000.0, 0.1, 1000000.0,
|
||||||
|
"The maximum amount of TechReborn energy units that can be transfered per operation.");
|
||||||
|
|
||||||
ConfigSection Condenser = root.subsection("Condenser");
|
ConfigSection Condenser = root.subsection("Condenser");
|
||||||
condenserMatterBallsPower = Condenser.addInt("MatterBalls", 256);
|
condenserMatterBallsPower = Condenser.addInt("MatterBalls", 256);
|
||||||
condenserSingularityPower = Condenser.addInt("Singularity", 256000);
|
condenserSingularityPower = Condenser.addInt("Singularity", 256000);
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ public class FluidP2PTunnelPart extends P2PTunnelPart<FluidP2PTunnelPart> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (simulation.isAction()) {
|
if (simulation.isAction()) {
|
||||||
FluidP2PTunnelPart.this.queueTunnelDrain(PowerUnits.RF,
|
FluidP2PTunnelPart.this.queueTunnelDrain(PowerUnits.TR,
|
||||||
amount.sub(overflowAmount).asInexactDouble() * 1000);
|
amount.sub(overflowAmount).asInexactDouble() * 1000);
|
||||||
}
|
}
|
||||||
} catch (GridAccessException ignored) {
|
} catch (GridAccessException ignored) {
|
||||||
|
|||||||
@@ -18,31 +18,29 @@
|
|||||||
|
|
||||||
package appeng.tile.powersink;
|
package appeng.tile.powersink;
|
||||||
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
|
||||||
import net.minecraft.block.entity.BlockEntityType;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.util.math.Direction;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
import alexiil.mc.lib.attributes.AttributeList;
|
|
||||||
import alexiil.mc.lib.attributes.AttributeProvider;
|
|
||||||
|
|
||||||
import appeng.api.config.AccessRestriction;
|
import appeng.api.config.AccessRestriction;
|
||||||
import appeng.api.config.Actionable;
|
import appeng.api.config.Actionable;
|
||||||
import appeng.api.config.PowerMultiplier;
|
import appeng.api.config.PowerMultiplier;
|
||||||
import appeng.api.config.PowerUnits;
|
import appeng.api.config.PowerUnits;
|
||||||
import appeng.api.networking.energy.IAEPowerStorage;
|
import appeng.api.networking.energy.IAEPowerStorage;
|
||||||
import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType;
|
import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType;
|
||||||
|
import appeng.core.AEConfig;
|
||||||
import appeng.tile.AEBaseInvBlockEntity;
|
import appeng.tile.AEBaseInvBlockEntity;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyStorage;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
|
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public abstract class AEBasePoweredBlockEntity extends AEBaseInvBlockEntity
|
public abstract class AEBasePoweredBlockEntity extends AEBaseInvBlockEntity
|
||||||
implements IAEPowerStorage, IExternalPowerSink, AttributeProvider {
|
implements IAEPowerStorage, IExternalPowerSink, EnergyStorage {
|
||||||
|
|
||||||
// values that determine general function, are set by inheriting classes if
|
// values that determine general function, are set by inheriting classes if
|
||||||
// needed. These should generally remain static.
|
// needed. These should generally remain static.
|
||||||
@@ -230,10 +228,37 @@ public abstract class AEBasePoweredBlockEntity extends AEBaseInvBlockEntity
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addAllAttributes(World world, BlockPos pos, BlockState state, AttributeList<?> to) {
|
public double getMaxInput(EnergySide side) {
|
||||||
super.addAllAttributes(world, pos, state, to);
|
double attemptedInsert = AEConfig.instance().getPowerTransactionLimitTechReborn();
|
||||||
|
double overflow = this.injectExternalPower(PowerUnits.TR, attemptedInsert, Actionable.SIMULATE);
|
||||||
|
double couldInsert = attemptedInsert - overflow;
|
||||||
|
if (couldInsert < 0.001) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME FABRIC: Offer energy attributes
|
return PowerUnits.AE.convertTo(PowerUnits.TR, couldInsert);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getStored(EnergySide energySide) {
|
||||||
|
// This block acts as if it cannot actually store any energy
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStored(double v) {
|
||||||
|
v = MathHelper.clamp(v, 0.001, getMaxStoredPower());
|
||||||
|
this.injectExternalPower(PowerUnits.TR, v, Actionable.MODULATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxStoredPower() {
|
||||||
|
return AEConfig.instance().getPowerTransactionLimitTechReborn();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.INFINITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ public class Platform {
|
|||||||
p = PowerUnits.AE.convertTo(displayUnits, p);
|
p = PowerUnits.AE.convertTo(displayUnits, p);
|
||||||
|
|
||||||
final String[] preFixes = { "k", "M", "G", "T", "P", "T", "P", "E", "Z", "Y" };
|
final String[] preFixes = { "k", "M", "G", "T", "P", "T", "P", "E", "Z", "Y" };
|
||||||
String unitName = displayUnits.name();
|
String unitName = displayUnits.getSymbolName();
|
||||||
|
|
||||||
String level = "";
|
String level = "";
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|||||||
@@ -256,7 +256,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Uživatel má přístupové a modifikační práva k bezpečnostnímu terminálu sítě.",
|
"gui.appliedenergistics2.security.security.tip": "Uživatel má přístupové a modifikační práva k bezpečnostnímu terminálu sítě.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Jednotky energie",
|
"gui.appliedenergistics2.units.ic2": "Jednotky energie",
|
||||||
"gui.appliedenergistics2.units.rf": "Ruditový Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Aktivní jednou za pulz",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Aktivní jednou za pulz",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktivní se signálem",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktivní se signálem",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktivní bez signálu",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktivní bez signálu",
|
||||||
|
|||||||
@@ -283,7 +283,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Der Nutzer darf auf die Sicherheitskonsole des Netzwerks zugreifen.",
|
"gui.appliedenergistics2.security.security.tip": "Der Nutzer darf auf die Sicherheitskonsole des Netzwerks zugreifen.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Einmalig aktiv je Puls",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Einmalig aktiv je Puls",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktiv mit Signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktiv mit Signal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktiv ohne Signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktiv ohne Signal",
|
||||||
|
|||||||
@@ -307,7 +307,7 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "User can access and modify the security terminal of the network.",
|
"gui.appliedenergistics2.security.security.tip": "User can access and modify the security terminal of the network.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
"gui.appliedenergistics2.units.tr": "TechReborn Energy",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activate once per pulse",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activate once per pulse",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Active with signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Active with signal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Active without signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Active without signal",
|
||||||
|
|||||||
@@ -192,7 +192,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "El usario puede acceder y modificar la configuración de seguridad de la red.",
|
"gui.appliedenergistics2.security.security.tip": "El usario puede acceder y modificar la configuración de seguridad de la red.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activar una vez por pulso",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activar una vez por pulso",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Activo con señal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Activo con señal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Active sin señal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Active sin señal",
|
||||||
|
|||||||
@@ -281,7 +281,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "L'utilisateur peut accéder et modifier le terminal de sécurité du réseau.",
|
"gui.appliedenergistics2.security.security.tip": "L'utilisateur peut accéder et modifier le terminal de sécurité du réseau.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activer une fois par impulsion",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activer une fois par impulsion",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Actif avec un signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Actif avec un signal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Actif sans signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Actif sans signal",
|
||||||
|
|||||||
@@ -270,7 +270,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Utente ha il permesso di accedere e modificare il terminale di sicurezza del sistema.",
|
"gui.appliedenergistics2.security.security.tip": "Utente ha il permesso di accedere e modificare il terminale di sicurezza del sistema.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Attivo una volta per impulso",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Attivo una volta per impulso",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Attivo con segnale",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Attivo con segnale",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Attivo senza segnale",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Attivo senza segnale",
|
||||||
|
|||||||
@@ -336,7 +336,6 @@
|
|||||||
"gui.tooltips.appliedenergistics2.P2PFrequency": "周波数: %s",
|
"gui.tooltips.appliedenergistics2.P2PFrequency": "周波数: %s",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "エネルギーユニット",
|
"gui.appliedenergistics2.units.ic2": "エネルギーユニット",
|
||||||
"gui.appliedenergistics2.units.rf": "レッドストーンフラックス",
|
|
||||||
"gui.appliedenergistics2.White": "白色",
|
"gui.appliedenergistics2.White": "白色",
|
||||||
"gui.appliedenergistics2.Orange": "橙色",
|
"gui.appliedenergistics2.Orange": "橙色",
|
||||||
"gui.appliedenergistics2.Magenta": "赤紫色",
|
"gui.appliedenergistics2.Magenta": "赤紫色",
|
||||||
|
|||||||
@@ -298,7 +298,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "유저는 네트워크의 보안 단말기에 액세스하여 수정할 수 있습니다.",
|
"gui.appliedenergistics2.security.security.tip": "유저는 네트워크의 보안 단말기에 액세스하여 수정할 수 있습니다.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "EU",
|
"gui.appliedenergistics2.units.ic2": "EU",
|
||||||
"gui.appliedenergistics2.units.rf": "RF",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "한 파동 당 활성화",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "한 파동 당 활성화",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "신호있는 활성화",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "신호있는 활성화",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "신호없는 활성화",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "신호없는 활성화",
|
||||||
|
|||||||
@@ -300,7 +300,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "O usuário pode acessar e modificar o terminal de segurança da rede.",
|
"gui.appliedenergistics2.security.security.tip": "O usuário pode acessar e modificar o terminal de segurança da rede.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Unidades de Energia",
|
"gui.appliedenergistics2.units.ic2": "Unidades de Energia",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Ativar uma vez por pulso",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Ativar uma vez por pulso",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Ativo com sinal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Ativo com sinal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Ativo sem sinal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Ativo sem sinal",
|
||||||
|
|||||||
@@ -132,7 +132,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Utilizator poate accesa şi modifica terminalul de securitate a reţelei.",
|
"gui.appliedenergistics2.security.security.tip": "Utilizator poate accesa şi modifica terminalul de securitate a reţelei.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Unități de Energie",
|
"gui.appliedenergistics2.units.ic2": "Unități de Energie",
|
||||||
"gui.appliedenergistics2.units.rf": "Flux de Piatră-Roşie",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activeaza odată per puls",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Activeaza odată per puls",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Activ cu semnal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Activ cu semnal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Activ fără semnal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Activ fără semnal",
|
||||||
|
|||||||
@@ -290,7 +290,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Пользователь может работать с терминалом безопасности и настраивать его в сети.",
|
"gui.appliedenergistics2.security.security.tip": "Пользователь может работать с терминалом безопасности и настраивать его в сети.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Активируется раз за импульс",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Активируется раз за импульс",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Активен с сигналом",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Активен с сигналом",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Активен без сигнала",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Активен без сигнала",
|
||||||
|
|||||||
@@ -306,7 +306,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "Användare kan komma åt och ändra nätverkets säkerhetsterminal.",
|
"gui.appliedenergistics2.security.security.tip": "Användare kan komma åt och ändra nätverkets säkerhetsterminal.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
"gui.appliedenergistics2.units.ic2": "Energy Units",
|
||||||
"gui.appliedenergistics2.units.rf": "Redstone Flux",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Aktivera en gång per puls",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "Aktivera en gång per puls",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktiv med signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktiv med signal",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktiv utan signal",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktiv utan signal",
|
||||||
|
|||||||
@@ -300,7 +300,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "用户可以访问修改网络的安全终端.",
|
"gui.appliedenergistics2.security.security.tip": "用户可以访问修改网络的安全终端.",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "EU",
|
"gui.appliedenergistics2.units.ic2": "EU",
|
||||||
"gui.appliedenergistics2.units.rf": "RF",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "有脉冲信号时激活",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "有脉冲信号时激活",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "有信号时激活",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "有信号时激活",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "无信号时激活",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "无信号时激活",
|
||||||
|
|||||||
@@ -290,7 +290,6 @@
|
|||||||
"gui.appliedenergistics2.security.security.tip": "用戶可以訪問修改網絡的安全終端。",
|
"gui.appliedenergistics2.security.security.tip": "用戶可以訪問修改網絡的安全終端。",
|
||||||
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
"gui.appliedenergistics2.units.appliedenergstics": "AE",
|
||||||
"gui.appliedenergistics2.units.ic2": "EU",
|
"gui.appliedenergistics2.units.ic2": "EU",
|
||||||
"gui.appliedenergistics2.units.rf": "RF",
|
|
||||||
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "有脈沖信號時激活",
|
"gui.tooltips.appliedenergistics2.ActiveOnPulse": "有脈沖信號時激活",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "有信號時激活",
|
"gui.tooltips.appliedenergistics2.ActiveWithSignal": "有信號時激活",
|
||||||
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "無信號時激活",
|
"gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "無信號時激活",
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
@@ -57,11 +57,11 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int receiveEnergy(int maxReceive, boolean simulate) {
|
public int receiveEnergy(int maxReceive, boolean simulate) {
|
||||||
final double convertedOffer = PowerUnits.RF.convertTo(PowerUnits.AE, maxReceive);
|
final double convertedOffer = PowerUnits.TR.convertTo(PowerUnits.AE, maxReceive);
|
||||||
final double overflow = this.item.injectAEPower(this.is, convertedOffer,
|
final double overflow = this.item.injectAEPower(this.is, convertedOffer,
|
||||||
simulate ? Actionable.SIMULATE : Actionable.MODULATE);
|
simulate ? Actionable.SIMULATE : Actionable.MODULATE);
|
||||||
|
|
||||||
return maxReceive - (int) PowerUnits.AE.convertTo(PowerUnits.RF, overflow);
|
return maxReceive - (int) PowerUnits.AE.convertTo(PowerUnits.TR, overflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -71,12 +71,12 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyStored() {
|
public int getEnergyStored() {
|
||||||
return (int) PowerUnits.AE.convertTo(PowerUnits.RF, this.item.getAECurrentPower(this.is));
|
return (int) PowerUnits.AE.convertTo(PowerUnits.TR, this.item.getAECurrentPower(this.is));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxEnergyStored() {
|
public int getMaxEnergyStored() {
|
||||||
return (int) PowerUnits.AE.convertTo(PowerUnits.RF, this.item.getAEMaxPower(this.is));
|
return (int) PowerUnits.AE.convertTo(PowerUnits.TR, this.item.getAEMaxPower(this.is));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public class FEP2PTunnelPart extends P2PTunnelPart<FEP2PTunnelPart> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!simulate) {
|
if (!simulate) {
|
||||||
FEP2PTunnelPart.this.queueTunnelDrain(PowerUnits.RF, total);
|
FEP2PTunnelPart.this.queueTunnelDrain(PowerUnits.TR, total);
|
||||||
}
|
}
|
||||||
} catch (GridAccessException ignored) {
|
} catch (GridAccessException ignored) {
|
||||||
}
|
}
|
||||||
@@ -177,7 +177,7 @@ public class FEP2PTunnelPart extends P2PTunnelPart<FEP2PTunnelPart> {
|
|||||||
final int total = FEP2PTunnelPart.this.getAttachedEnergyStorage().extractEnergy(maxExtract, simulate);
|
final int total = FEP2PTunnelPart.this.getAttachedEnergyStorage().extractEnergy(maxExtract, simulate);
|
||||||
|
|
||||||
if (!simulate) {
|
if (!simulate) {
|
||||||
FEP2PTunnelPart.this.queueTunnelDrain(PowerUnits.RF, total);
|
FEP2PTunnelPart.this.queueTunnelDrain(PowerUnits.TR, total);
|
||||||
}
|
}
|
||||||
|
|
||||||
return total;
|
return total;
|
||||||
|
|||||||
Reference in New Issue
Block a user