mmb.engine.item.ItemEntity Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of multimachinebuilder Show documentation
Show all versions of multimachinebuilder Show documentation
Dependency for the MultiMachineBuilder, a voxel game about building an industrial empire in a finite world.
THIS RELEASE IS NOT PLAYABLE. To play the game, donwload from >ITCH.IO LINK HERE< or >GH releases link here<
/**
*
*/
package mmb.engine.item;
import com.fasterxml.jackson.databind.JsonNode;
import mmb.Nil;
/**
* @author oskar
*
*/
public abstract class ItemEntity implements ItemEntry{
protected abstract int hash0();
protected abstract boolean equal0(ItemEntity other);
@Override
public abstract @Nil JsonNode save(); //NOSONAR undefaulted to force item entities to do their save logic
@Override
public final int hashCode() {
return 31*super.hashCode() + hash0();
}
@Override
public final boolean equals(@Nil Object obj) {
if(this == obj) return true;
if(obj == null) return false;
if(getClass() != obj.getClass()) return false;
return super.equals(obj);
}
@Override
public double volume() {
return type().volume();
}
}