aether-legacy/src/main/java/com/gildedgames/the_aether/api/freezables/AetherFreezable.java
2023-03-13 19:53:26 +01:00

87 lines
2.7 KiB
Java

package com.gildedgames.the_aether.api.freezables;
import com.gildedgames.the_aether.api.RegistryEntry;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class AetherFreezable extends RegistryEntry {
public int timeRequired;
public ItemStack input, output;
public AetherFreezable(ItemStack input, Block output, int timeRequired) {
this(input, new ItemStack(output), timeRequired);
}
public AetherFreezable(Block input, ItemStack output, int timeRequired) {
this(new ItemStack(input), output, timeRequired);
}
public AetherFreezable(Block input, Block output, int timeRequired) {
this(new ItemStack(input), new ItemStack(output), timeRequired);
}
public AetherFreezable(ItemStack input, Item output, int timeRequired) {
this(input, new ItemStack(output), timeRequired);
}
public AetherFreezable(Item input, ItemStack output, int timeRequired) {
this(new ItemStack(input), output, timeRequired);
}
public AetherFreezable(Item input, Item output, int timeRequired) {
this(new ItemStack(input), new ItemStack(output), timeRequired);
}
public AetherFreezable(Block input, Item output, int timeRequired) {
this(new ItemStack(input), new ItemStack(output), timeRequired);
}
public AetherFreezable(Item input, Block output, int timeRequired) {
this(new ItemStack(input), new ItemStack(output), timeRequired);
}
public AetherFreezable(ItemStack input, ItemStack output, int timeRequired) {
this.input = input;
this.output = output;
this.timeRequired = timeRequired;
this.setRegistryName(
input.getItem().getUnlocalizedName().toString() + "_meta_"
+ (input.isItemStackDamageable() ? 0 : input.getItemDamage())
);
}
public int getTimeRequired() {
return this.timeRequired;
}
public ItemStack getInput() {
return this.input;
}
public ItemStack getOutput() {
return this.output;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof AetherFreezable) {
AetherFreezable freezable = (AetherFreezable) obj;
boolean inputCheck
= this.getInput().getItem() == freezable.getInput().getItem()
&& this.getInput().getItemDamage()
== freezable.getInput().getItemDamage();
boolean outputCheck
= this.getOutput().getItem() == freezable.getOutput().getItem()
&& this.getOutput().getItemDamage()
== freezable.getOutput().getItemDamage();
return inputCheck && outputCheck;
}
return false;
}
}