Skip to content

Commit

Permalink
add documentations on Groovyscript
Browse files Browse the repository at this point in the history
  • Loading branch information
yor42 committed Nov 18, 2024
1 parent 0a22ca4 commit d3bf4f6
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 17 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ dependencies {
implementation 'org.scala-lang:scala-library:2.11.1' // Changed from Scala 3
implementation 'org.scala-lang:scala-compiler:2.11.1' // Changed from Scala 3

implementation rfg.deobf("curse.maven:mekanism-ce-399904:5351260")
compileOnly rfg.deobf("curse.maven:mekanism-ce-399904:5351260")
compileOnly rfg.deobf("curse.maven:gregtech-ce-unofficial-557242:5519022")

implementation rfg.deobf("codechicken:CodeChickenLib:1.12.2-${project.ccl_ver}:universal")
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/cn/academy/item/ItemCoin.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,12 @@ public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player

player.playSound(Resources.sound("entity.flipcoin"), 0.5f, 1.0f);
setPlayerCoin(player, etc);

MinecraftForge.EVENT_BUS.post(new CoinThrowEvent(player, etc));
if(!player.capabilities.isCreativeMode) {
stack.setCount(stack.getCount() - 1);
}
player.swingArm(hand);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,46 @@

import cn.academy.crafting.ImagFusorRecipes;
import com.cleanroommc.groovyscript.api.IIngredient;
import com.cleanroommc.groovyscript.api.documentation.annotations.Example;
import com.cleanroommc.groovyscript.api.documentation.annotations.MethodDescription;
import com.cleanroommc.groovyscript.api.documentation.annotations.RegistryDescription;
import com.cleanroommc.groovyscript.registry.StandardListRegistry;
import com.cleanroommc.groovyscript.registry.VirtualizedRegistry;
import net.minecraft.item.ItemStack;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;

@RegistryDescription
public class ImagFusor extends StandardListRegistry<ImagFusorRecipes.IFRecipe> {
@Override
public Collection<ImagFusorRecipes.IFRecipe> getRecipes() {
return ImagFusorRecipes.INSTANCE.getAllRecipe();
}


@MethodDescription(description = "groovyscript.wiki.academy.imag_fusor.add", type = MethodDescription.Type.ADDITION)
public void addRecipe(ItemStack output, IIngredient input, int liquidAmount){
for(ItemStack stack:input.getMatchingStacks()) {
this.addRecipe(new ImagFusorRecipes.IFRecipe(stack, liquidAmount, output));
}
}

public void removeRecipe(IIngredient input){
for(ItemStack stack:input.getMatchingStacks()) {
ImagFusorRecipes.IFRecipe recipe = ImagFusorRecipes.INSTANCE.removeRecipebyInput(stack);
if (recipe != null){
this.addBackup(recipe);
}
@MethodDescription(description = "groovyscript.wiki.academy.imag_fusor.remove", example = @Example("item('academy:crystal_normal')"), type = MethodDescription.Type.REMOVAL)
public void removeRecipe(ItemStack input) {
ImagFusorRecipes.IFRecipe recipe = ImagFusorRecipes.INSTANCE.removeRecipebyInput(input);
if (recipe != null) {
this.addBackup(recipe);
}
}
@MethodDescription(description = "groovyscript.wiki.academy.imag_fusor.clear", type = MethodDescription.Type.REMOVAL)
public void clearRecipe(){
Iterator<ImagFusorRecipes.IFRecipe> iterator = ImagFusorRecipes.INSTANCE.getAllRecipe().iterator();
while (iterator.hasNext()) {
ImagFusorRecipes.IFRecipe recipe = iterator.next();
iterator.remove();
this.addBackup(recipe);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package cn.academy.support.groovyscript.modules;

import cn.academy.block.tileentity.TileMetalFormer;
import cn.academy.crafting.ImagFusorRecipes;
import cn.academy.crafting.MetalFormerRecipes;
import com.cleanroommc.groovyscript.api.GroovyBlacklist;
import com.cleanroommc.groovyscript.api.IIngredient;
import com.cleanroommc.groovyscript.api.documentation.annotations.MethodDescription;
import com.cleanroommc.groovyscript.api.documentation.annotations.RegistryDescription;
import com.cleanroommc.groovyscript.registry.StandardListRegistry;
import com.cleanroommc.groovyscript.registry.VirtualizedRegistry;
import net.minecraft.item.Item;
Expand All @@ -11,49 +15,117 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;

@RegistryDescription
public class MetalFormer extends StandardListRegistry<MetalFormerRecipes.RecipeObject> {

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.add.etch", type = MethodDescription.Type.ADDITION)
public void addEtchRecipe(IIngredient input, ItemStack output){
for(ItemStack stack:input.getMatchingStacks()) {
this.addRecipe(new MetalFormerRecipes.RecipeObject(stack, output, TileMetalFormer.Mode.ETCH));
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.add.incise", type = MethodDescription.Type.ADDITION)
public void addInciseRecipe(IIngredient input, ItemStack output){
for(ItemStack stack:input.getMatchingStacks()) {
this.addRecipe(new MetalFormerRecipes.RecipeObject(stack, output, TileMetalFormer.Mode.INCISE));
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.add.plate", type = MethodDescription.Type.ADDITION)
public void addPlateRecipe(IIngredient input, ItemStack output){
for(ItemStack stack:input.getMatchingStacks()) {
this.addRecipe(new MetalFormerRecipes.RecipeObject(stack, output, TileMetalFormer.Mode.PLATE));
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.add.refine", type = MethodDescription.Type.ADDITION)
public void addRefineRecipe(IIngredient input, ItemStack output){
for(ItemStack stack:input.getMatchingStacks()) {
this.addRecipe(new MetalFormerRecipes.RecipeObject(stack, output, TileMetalFormer.Mode.REFINE));
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.remove.etch", type = MethodDescription.Type.REMOVAL)
public void removeEtchbyInput(ItemStack input){
this.removeByInputandMode(input, TileMetalFormer.Mode.ETCH);
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.remove.plate", type = MethodDescription.Type.REMOVAL)
public void removePlatebyInput(ItemStack input){
this.removeByInputandMode(input, TileMetalFormer.Mode.PLATE);
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.remove.incise", type = MethodDescription.Type.REMOVAL)
public void removeIncisebyInput(ItemStack input){
this.removeByInputandMode(input, TileMetalFormer.Mode.INCISE);
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.remove.refine", type = MethodDescription.Type.REMOVAL)
public void removeRefinebyInput(ItemStack input){
this.removeByInputandMode(input, TileMetalFormer.Mode.REFINE);
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.clear.all", type = MethodDescription.Type.REMOVAL)
public void clearRecipe(){
Iterator<MetalFormerRecipes.RecipeObject> iterator = MetalFormerRecipes.INSTANCE.getAllRecipes().iterator();
while (iterator.hasNext()) {
MetalFormerRecipes.RecipeObject recipe = iterator.next();
iterator.remove();
this.addBackup(recipe);
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.clear.etch", type = MethodDescription.Type.REMOVAL)
public void clearEtch(){
Iterator<MetalFormerRecipes.RecipeObject> iterator = MetalFormerRecipes.INSTANCE.getAllRecipes().iterator();
while (iterator.hasNext()) {
MetalFormerRecipes.RecipeObject recipe = iterator.next();
if(recipe.mode == TileMetalFormer.Mode.ETCH) {
iterator.remove();
this.addBackup(recipe);
}
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.clear.incise", type = MethodDescription.Type.REMOVAL)
public void clearIncise(){
Iterator<MetalFormerRecipes.RecipeObject> iterator = MetalFormerRecipes.INSTANCE.getAllRecipes().iterator();
while (iterator.hasNext()) {
MetalFormerRecipes.RecipeObject recipe = iterator.next();
if(recipe.mode == TileMetalFormer.Mode.INCISE) {
iterator.remove();
this.addBackup(recipe);
}
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.clear.plate", type = MethodDescription.Type.REMOVAL)
public void clearPlate(){
Iterator<MetalFormerRecipes.RecipeObject> iterator = MetalFormerRecipes.INSTANCE.getAllRecipes().iterator();
while (iterator.hasNext()) {
MetalFormerRecipes.RecipeObject recipe = iterator.next();
if(recipe.mode == TileMetalFormer.Mode.PLATE) {
iterator.remove();
this.addBackup(recipe);
}
}
}

@MethodDescription(description = "groovyscript.wiki.academy.metal_former.clear.refine", type = MethodDescription.Type.REMOVAL)
public void clearRefine(){
Iterator<MetalFormerRecipes.RecipeObject> iterator = MetalFormerRecipes.INSTANCE.getAllRecipes().iterator();
while (iterator.hasNext()) {
MetalFormerRecipes.RecipeObject recipe = iterator.next();
if(recipe.mode == TileMetalFormer.Mode.REFINE) {
iterator.remove();
this.addBackup(recipe);
}
}
}

public void removeByInputandMode(ItemStack input, TileMetalFormer.Mode mode) {
MetalFormerRecipes.RecipeObject recipe;
recipe = MetalFormerRecipes.INSTANCE.removebyInput(input, mode);
Expand All @@ -62,17 +134,11 @@ public void removeByInputandMode(ItemStack input, TileMetalFormer.Mode mode) {
this.addBackup(recipe);
}
}

public void addRecipe(MetalFormerRecipes.RecipeObject recipe){
MetalFormerRecipes.INSTANCE.add(recipe);
this.addScripted(recipe);
}

public void removeRecipe(MetalFormerRecipes.RecipeObject recipe){
MetalFormerRecipes.INSTANCE.remove(recipe);
this.addBackup(recipe);
}

@Override
public Collection<MetalFormerRecipes.RecipeObject> getRecipes() {
return MetalFormerRecipes.INSTANCE.getAllRecipes();
Expand Down
23 changes: 23 additions & 0 deletions src/main/resources/assets/academy/lang/en_us.lang
Original file line number Diff line number Diff line change
Expand Up @@ -500,3 +500,26 @@ ac.skill_tree.dev_developing=Developing...

# About App
ac.about.donators_info=In no particular order

# Groovyscript
groovyscript.wiki.academy.imag_fusor.title=Imag Fusor
groovyscript.wiki.academy.imag_fusor.description=Converts one item and defined amount of Imag phase liquid into one item.
groovyscript.wiki.academy.imag_fusor.add=Adds recipes in the format `output`, `input`, `amount of phase liquid`
groovyscript.wiki.academy.imag_fusor.remove=Removes an entry matching the given `ItemStack`
groovyscript.wiki.academy.imag_fusor.clear=Removes all entry of Imag Fusor

groovyscript.wiki.academy.metal_former.title=Metal Former
groovyscript.wiki.academy.metal_former.description=Converts an item into another item, according to the mode of the machine.
groovyscript.wiki.academy.metal_former.add.etch=Adds etching recipes in the format `input`, `output`
groovyscript.wiki.academy.metal_former.add.incise=Adds incising recipes in the format `input`, `output`
groovyscript.wiki.academy.metal_former.add.plate=Adds plating recipes in the format `input`, `output`
groovyscript.wiki.academy.metal_former.add.refine=Adds refining recipes in the format `input`, `output`
groovyscript.wiki.academy.metal_former.remove.etch=Removes an entry matching the given `ItemStack` from etching recipes
groovyscript.wiki.academy.metal_former.remove.incise=Removes an entry matching the given `ItemStack` from incise recipes
groovyscript.wiki.academy.metal_former.remove.plate=Removes an entry matching the given `ItemStack` from plate recipes
groovyscript.wiki.academy.metal_former.remove.refine=Removes an entry matching the given `ItemStack` from refine recipes
groovyscript.wiki.academy.metal_former.clear.all=Removes all entry of metal former
groovyscript.wiki.academy.metal_former.clear.etch=Removes all etching entry of metal former
groovyscript.wiki.academy.metal_former.clear.incise=Removes all etching entry of metal former
groovyscript.wiki.academy.metal_former.clear.plate=Removes all etching entry of metal former
groovyscript.wiki.academy.metal_former.clear.refine=Removes all etching entry of metal former
26 changes: 24 additions & 2 deletions src/main/resources/assets/academy/lang/ko_kr.lang
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,8 @@ ac.ability.generic.brain_course_advanced.name=브레인 고급 코스
ac.ability.generic.mind_course.name=마인드 코스

ac.ability.generic.brain_course.desc=뇌를 훈련시킵니다. 최대 CP가 1000만큼 증가합니다.
ac.ability.generic.brain_course_advanced.desc=여러분의 두뇌의 사고력을 깊이 발전시킵니다. 최대 CP는 1000, 최대 과부하는 100만큼 증가합니다.
ac.ability.generic.mind_course.desc=여러분의 뇌를 더 잘 휴식시키는 방법을 배웁니다. CP 회복 속도를 20%% 향상시킵니다.
ac.ability.generic.brain_course_advanced.desc=두뇌의 사고력을 깊이 발전시킵니다. 최대 CP는 1000, 최대 과부하는 100만큼 증가합니다.
ac.ability.generic.mind_course.desc=뇌를 더 잘 휴식시키는 방법을 배웁니다. CP 회복 속도를 20%% 향상시킵니다.

## Electromaster
ac.ability.electromaster.name=전격술사
Expand Down Expand Up @@ -500,3 +500,25 @@ ac.skill_tree.dev_developing=개발중...

# About App
ac.about.donators_info=순서 없이 나열됨

groovyscript.wiki.academy.imag_fusor.title=상상 융합기
groovyscript.wiki.academy.imag_fusor.description=한 아이템과 정해진 양의 상상 위상 액체를 다른 아이템으로 변경합니다
groovyscript.wiki.academy.imag_fusor.add=`출력`, `입력`, `상상 위상 액체 소모량`의 형식으로 상상 융합기의 조합법을 추가합니다
groovyscript.wiki.academy.imag_fusor.remove=`아이템스택`과 입력이 일치하는 상상 융합기의 조합법을 삭제합니다.
groovyscript.wiki.academy.imag_fusor.clear=상상 융합기의 모든 조합법을 삭제합니다

groovyscript.wiki.academy.metal_former.title=금속 변형기
groovyscript.wiki.academy.metal_former.description=한 아이템을 동작 모드에 따라 다른 아이템으로 변형합니다.
groovyscript.wiki.academy.metal_former.add.etch=`입력`, `출력`의 형태로 에칭 조합법을 추가합니다
groovyscript.wiki.academy.metal_former.add.incise=`입력`, `출력`의 형태로 절삭 조합법을 추가합니다
groovyscript.wiki.academy.metal_former.add.plate=`입력`, `출력`의 형태로 압연 조합법을 추가합니다
groovyscript.wiki.academy.metal_former.add.refine=`입력`, `출력`의 형태로 정제 조합법을 추가합니다
groovyscript.wiki.academy.metal_former.remove.etch=`아이템스택`과 입력이 일치하는 금속 변형기의 에칭 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.remove.incise=`아이템스택`과 입력이 일치하는 금속 변형기의 절삭 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.remove.plate=`아이템스택`과 입력이 일치하는 금속 변형기의 압연 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.remove.refine=`아이템스택`과 입력이 일치하는 금속 변형기의 정제 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.clear.all=금속 변형기의 모든 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.clear.etch=금속 변형기의 모든 에칭 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.clear.incise=금속 변형기의 모든 절삭 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.clear.plate=금속 변형기의 모든 압연 조합법을 삭제합니다.
groovyscript.wiki.academy.metal_former.clear.refine=금속 변형기의 모든 정제 조합법을 삭제합니다.

0 comments on commit d3bf4f6

Please sign in to comment.