public class MermaidsAPI {
/**
* Check to see if the reference is a mermaid.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @return boolean of rather the reference is a mermaid
*/
public static boolean isMermaid(Store<EntityStore> store, Ref<EntityStore> ref){
MermaidComponent mermaid = store.getComponent(ref, Mermaids.get().getMermaidComponentType());
if(mermaid == null){
Mermaids.LOGGER.atSevere().log("ERROR: isMermaid: Mermaid Component is null for MermaidsAPI getMermaid -- returning false");
return false;
}else{
return mermaid.isMermaid();
}
}
/**
* Check to see if the reference is underwater.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @return boolean of rather the reference is underwater
*/
public static boolean isUnderwater(Store<EntityStore> store, Ref<EntityStore> ref){
MermaidComponent mermaid = store.getComponent(ref, Mermaids.get().getMermaidComponentType());
if(mermaid == null){
Mermaids.LOGGER.atSevere().log("ERROR: isUnderwater: Mermaid Component is null for MermaidsAPI getMermaid -- returning false");
return false;
}else{
return mermaid.isUnderwater();
}
}
/**
* Check to see if the reference is forced to be a mermaid.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @return boolean of rather the reference is forced to be a mermaid
*/
public static boolean isForcedMermaid(Store<EntityStore> store, Ref<EntityStore> ref){
MermaidSettings mermaidSettings = store.getComponent(ref, Mermaids.get().getMermaidSetingsComponentType());
if(mermaidSettings == null){
Mermaids.LOGGER.atSevere().log("ERROR: isForcedMermaid: Mermaid Settings Component is null for MermaidsAPI getMermaid -- returning false");
return false;
}else{
return mermaidSettings.isForcedMermaid();
}
}
/**
* Force the reference to be / not be a mermaid.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @param forcedMermaid rather to force to (not) be a mermaid
*/
public static void setForcedMermaid(Store<EntityStore> store, Ref<EntityStore> ref, boolean forcedMermaid){
MermaidSettings mermaidSettings = store.getComponent(ref, Mermaids.get().getMermaidSetingsComponentType());
if(mermaidSettings == null){
Mermaids.LOGGER.atSevere().log("ERROR: isForcedMermaid: Mermaid Settings Component is null for MermaidsAPI getMermaid -- doing nothing");
}else{
mermaidSettings.setForcedMermaid(forcedMermaid);
}
}
/**
* Get required that all users to need the Forced Mermaid setting to be a mermaid.
*
* @return boolean require forced Mermaid transformation
*/
public static boolean ifRequireForcedMermaid(){
return Mermaids.getConfig().get().ifRequireForceMermaid();
}
/**
* Require that all users to need the Forced Mermaid setting to be a mermaid.
*
* @param requireForcedMermaid require forced Mermaid transformation
*/
public static void setRequireForcedMermaid(boolean requireForcedMermaid){
Mermaids.getConfig().get().setRequireForceMermaid(requireForcedMermaid);
}
/**
* Get if forced Mermaid will only work if player is in water.
*
* @return boolean require Mermaid transformation to happen only in water
*/
public static boolean ifForcedMermaidOnlyInWater(){
return Mermaids.getConfig().get().ifRequireForceMermaid();
}
/**
* Forced Mermaid will only work if player is in water.
*
* @param forcedOnlyInWater require Mermaid transformation to happen only in water
*/
public static void setForcedMermaidOnlyInWater(boolean forcedOnlyInWater){
Mermaids.getConfig().get().setForceMermaidOnlyInWater(forcedOnlyInWater);
}
/**
* Check to see if the reference is forced to be a mermaid for the Orbis Origin Mod.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @return boolean of rather the reference is forced to be a mermaid
*/
public static boolean isForcedMermaidOrbisOrigin(Store<EntityStore> store, Ref<EntityStore> ref){
MermaidSettings mermaidSettings = store.getComponent(ref, Mermaids.get().getMermaidSetingsComponentType());
if(mermaidSettings == null){
Mermaids.LOGGER.atSevere().log("ERROR: isForcedMermaidOrbisOrigin: Mermaid Settings Component is null for MermaidsAPI getMermaid -- returning false");
return false;
}else{
return mermaidSettings.isForcedMermaidOrbisOrigin();
}
}
/**
* Force the reference to be / not be a mermaid for the Orbis Origin Mod.
*
* @param store The entity store, store
* @param ref The entity store, reference
* @param forcedMermaid rather to force to (not) be a mermaid
*/
public static void setForcedMermaidOrbisOrigin(Store<EntityStore> store, Ref<EntityStore> ref, boolean forcedMermaid){
MermaidSettings mermaidSettings = store.getComponent(ref, Mermaids.get().getMermaidSetingsComponentType());
if(mermaidSettings == null){
Mermaids.LOGGER.atSevere().log("ERROR: isForcedMermaidOrbisOrigin: Mermaid Settings Component is null for MermaidsAPI getMermaid -- doing nothing");
}else{
mermaidSettings.setForcedMermaidOrbisOrigin(forcedMermaid);
}
}
}