All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mmb.engine.item.ItemEntity Maven / Gradle / Ivy

Go to download

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<

There is a newer version: 0.6
Show newest version
/**
 * 
 */
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();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy