Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
167 additions
and
0 deletions.
There are no files selected for viewing
16 changes: 16 additions & 0 deletions
16
src/main/java/snownee/jade/impl/template/TemplateBlockComponentProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.BlockAccessor; | ||
import snownee.jade.api.IBlockComponentProvider; | ||
import snownee.jade.api.TooltipPosition; | ||
|
||
public final class TemplateBlockComponentProvider extends TemplateComponentProvider<BlockAccessor> implements IBlockComponentProvider { | ||
public TemplateBlockComponentProvider(ResourceLocation uid) { | ||
this(uid, false, true, TooltipPosition.BODY); | ||
} | ||
|
||
public TemplateBlockComponentProvider(ResourceLocation uid, boolean required, boolean enabledByDefault, int defaultPriority) { | ||
super(uid, required, enabledByDefault, defaultPriority); | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
src/main/java/snownee/jade/impl/template/TemplateBlockServerDataProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.BlockAccessor; | ||
|
||
public final class TemplateBlockServerDataProvider extends TemplateServerDataProvider<BlockAccessor> { | ||
public TemplateBlockServerDataProvider(ResourceLocation uid) { | ||
super(uid); | ||
} | ||
} |
70 changes: 70 additions & 0 deletions
70
src/main/java/snownee/jade/impl/template/TemplateComponentProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import java.util.function.BiConsumer; | ||
import java.util.function.BiFunction; | ||
|
||
import org.jetbrains.annotations.Nullable; | ||
|
||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.Accessor; | ||
import snownee.jade.api.IComponentProvider; | ||
import snownee.jade.api.ITooltip; | ||
import snownee.jade.api.config.IPluginConfig; | ||
import snownee.jade.api.ui.IElement; | ||
|
||
/** | ||
* A template implementation for script languages like KubeJS | ||
*/ | ||
public abstract class TemplateComponentProvider<T extends Accessor<?>> implements IComponentProvider<T> { | ||
private final ResourceLocation uid; | ||
private final boolean required; | ||
private final boolean enabledByDefault; | ||
private final int defaultPriority; | ||
private BiFunction<T, IElement, IElement> iconFunction = (accessor, currentIcon) -> null; | ||
private BiConsumer<ITooltip, T> tooltipFunction = (tooltip, accessor) -> {}; | ||
|
||
protected TemplateComponentProvider(ResourceLocation uid, boolean required, boolean enabledByDefault, int defaultPriority) { | ||
this.uid = uid; | ||
this.required = required; | ||
this.enabledByDefault = enabledByDefault; | ||
this.defaultPriority = defaultPriority; | ||
} | ||
|
||
@Override | ||
public boolean isRequired() { | ||
return required; | ||
} | ||
|
||
@Override | ||
public boolean enabledByDefault() { | ||
return enabledByDefault; | ||
} | ||
|
||
@Override | ||
public int getDefaultPriority() { | ||
return defaultPriority; | ||
} | ||
|
||
@Override | ||
public ResourceLocation getUid() { | ||
return uid; | ||
} | ||
|
||
@Override | ||
public @Nullable IElement getIcon(T accessor, IPluginConfig config, IElement currentIcon) { | ||
return iconFunction.apply(accessor, currentIcon); | ||
} | ||
|
||
@Override | ||
public void appendTooltip(ITooltip tooltip, T accessor, IPluginConfig config) { | ||
tooltipFunction.accept(tooltip, accessor); | ||
} | ||
|
||
public void setIconFunction(BiFunction<T, IElement, IElement> iconFunction) { | ||
this.iconFunction = iconFunction; | ||
} | ||
|
||
public void setTooltipFunction(BiConsumer<ITooltip, T> tooltipFunction) { | ||
this.tooltipFunction = tooltipFunction; | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/snownee/jade/impl/template/TemplateEntityComponentProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.EntityAccessor; | ||
import snownee.jade.api.IEntityComponentProvider; | ||
import snownee.jade.api.TooltipPosition; | ||
|
||
public final class TemplateEntityComponentProvider extends TemplateComponentProvider<EntityAccessor> implements IEntityComponentProvider { | ||
public TemplateEntityComponentProvider(ResourceLocation uid) { | ||
this(uid, false, true, TooltipPosition.BODY); | ||
} | ||
|
||
public TemplateEntityComponentProvider(ResourceLocation uid, boolean required, boolean enabledByDefault, int defaultPriority) { | ||
super(uid, required, enabledByDefault, defaultPriority); | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
src/main/java/snownee/jade/impl/template/TemplateEntityServerDataProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.EntityAccessor; | ||
|
||
public final class TemplateEntityServerDataProvider extends TemplateServerDataProvider<EntityAccessor> { | ||
public TemplateEntityServerDataProvider(ResourceLocation uid) { | ||
super(uid); | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
src/main/java/snownee/jade/impl/template/TemplateServerDataProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package snownee.jade.impl.template; | ||
|
||
import java.util.function.BiConsumer; | ||
import java.util.function.Predicate; | ||
|
||
import net.minecraft.nbt.CompoundTag; | ||
import net.minecraft.resources.ResourceLocation; | ||
import snownee.jade.api.Accessor; | ||
import snownee.jade.api.IServerDataProvider; | ||
|
||
/** | ||
* A template implementation for script languages like KubeJS | ||
*/ | ||
public class TemplateServerDataProvider<T extends Accessor<?>> implements IServerDataProvider<T> { | ||
private final ResourceLocation uid; | ||
private BiConsumer<CompoundTag, T> dataFunction = (data, accessor) -> {}; | ||
private Predicate<T> shouldRequestData = accessor -> true; | ||
|
||
protected TemplateServerDataProvider(ResourceLocation uid) { | ||
this.uid = uid; | ||
} | ||
|
||
@Override | ||
public ResourceLocation getUid() { | ||
return uid; | ||
} | ||
|
||
@Override | ||
public void appendServerData(CompoundTag data, T accessor) { | ||
dataFunction.accept(data, accessor); | ||
} | ||
|
||
@Override | ||
public boolean shouldRequestData(T accessor) { | ||
return shouldRequestData.test(accessor); | ||
} | ||
|
||
public void setDataFunction(BiConsumer<CompoundTag, T> dataFunction) { | ||
this.dataFunction = dataFunction; | ||
} | ||
|
||
public void setShouldRequestData(Predicate<T> shouldRequestData) { | ||
this.shouldRequestData = shouldRequestData; | ||
} | ||
} |