FancyMenu Wiki/自定义Visibility Requirements:修订间差异

 
(未显示1个用户的3个中间版本)
第45行: 第45行:
}
}
</syntaxhighlight>
</syntaxhighlight>
isRequirementMet()
==== isRequirementMet() ====
这是你的 Requirements 的最重要的方法。
这是你的 Requirements 的最重要的方法。
这里用于返回是否满足在此要求中检查的条件。
这里用于返回是否满足在此要求中检查的条件。
这个方法以 Requirements 的值为参数,但因为这个 Requirements 没有值,所以参数为空。
这个方法以 Requirements 的值为参数,但因为这个 Requirements 没有值,所以参数为空。
<syntaxhighlight lang="java">
//Here you return if the requirement is met (using the given requirement value if the requirement has one).
//Here you return if the requirement is met (using the given requirement value if the requirement has one).
//在这里返回是否满足 Requirements (如果 Requirements 有值则返回 Requirements 的值)
//在这里返回是否满足 Requirements (如果 Requirements 有值则返回 Requirements 的值)
第61行: 第64行:


}
}
复制代码
</syntaxhighlight>
==== getDisplayName() ====
这个方法返回 Requirements 的显示名。


getDisplayName()
这个方法返回 Requirements 的显示名。
这个显示名会在布局编辑器的Visibility Requirements选项显示。
这个显示名会在布局编辑器的Visibility Requirements选项显示。
<syntaxhighlight lang="java">
//This is the display name of the requirement.
//This is the display name of the requirement.
//这个是 Requirements 的显示名。
//这个是 Requirements 的显示名。
第74行: 第78行:
     return "Example Requirement [No Value]";
     return "Example Requirement [No Value]";
}
}
复制代码
</syntaxhighlight>
==== getDescription() ====
返回 Requirements 的描述。


getDescription()
返回 Requirements 的描述。
当把鼠标悬停在切换 Requirements 按钮上时,该描述会作为工具提示显示。
当把鼠标悬停在切换 Requirements 按钮上时,该描述会作为工具提示显示。
<syntaxhighlight lang="java">
//This is the description of the requirement.
//This is the description of the requirement.
//这里是 Requirements 的描述
//这里是 Requirements 的描述
第89行: 第94行:
     return l;
     return l;
}
}
复制代码
</syntaxhighlight>
==== getValueDisplayName() ====
这个方法返回值的显示名。


getValueDisplayName()
这个方法返回值的显示名。
因为咱的 Requirements 不用值,返回空即可。
因为咱的 Requirements 不用值,返回空即可。
<syntaxhighlight lang="java">
//Since this requirement has no value, just return NULL here.
//Since this requirement has no value, just return NULL here.
//因为 Requirements 没有值,只需要在这里返回null。
//因为 Requirements 没有值,只需要在这里返回null。
第100行: 第106行:
     return null;
     return null;
}
}
复制代码
</syntaxhighlight>
==== getValuePreset() ====
返回自动设置到值输入文本字段的内容。


getValuePreset()
这个 Requirements 没有值输入字段,所以我们返回<code>null</code>。
返回自动设置到值输入文本字段的内容。
<syntaxhighlight lang="java">
这个 Requirements 没有值输入字段,所以我们返回null。
//No value, so just return NULL.
//No value, so just return NULL.
//没有值,返回null。
//没有值,返回null。
第111行: 第118行:
     return null;
     return null;
}
}
复制代码
</syntaxhighlight>
==== getValueInputFieldFilter() ====
该方法返回一个字符过滤器,该过滤器用来检查用户可以在数值输入文本字段中允许输入的字符。


getValueInputFieldFilter()
没值,回null。
该方法返回一个字符过滤器,该过滤器用来检查用户可以在数值输入文本字段中允许输入的字符。
<syntaxhighlight lang="java">
妹纸,回null。
//You know the drill. No value = return NULL.
//You know the drill. No value = return NULL.
//没值 = 返回null(毁灭吧,我累了 *发动地鸣)
//没值 = 返回null(毁灭吧,我累了 *发动地鸣)
第122行: 第130行:
     return null;
     return null;
}
}
2.2.9. Full Example Class
</syntaxhighlight>
This is a full working VisibilityRequirement example.
==== 完整示例 ====
这个是完整的VisibilityRequirement样例。
这个是完整的VisibilityRequirement样例。
<syntaxhighlight lang="java">
package de.keksuccino.fancymenu.api.visibilityrequirements.example;
package de.keksuccino.fancymenu.api.visibilityrequirements.example;


第205行: 第214行:


}
}
复制代码
</syntaxhighlight>
==== 注册Visibility Requirement ====
到这你几乎完成了。(译者:我也是 *冰箱里拿一瓶啤酒)


注册Visibility Requirement
现在你只需要在游戏加载时将你的<code>VisibilityRequirement</code>注册到<code>VisibilityRequirementRegistry</code>。
到这你几乎完成了。(译者:我也是 *冰箱里拿一瓶啤酒)
<syntaxhighlight lang="java">
现在你只需要在游戏加载时将你的VisibilityRequirement注册到VisibilityRequirementRegistry。
package de.keksuccino.fancymenu;
package de.keksuccino.fancymenu;


第231行: 第241行:


}
}
复制代码
</syntaxhighlight>


=== 创建带值的Requirement ===
=== 创建带值的Requirement ===
创建<code>VisibilityRequirement</code>的新子类并取一个合适的名字。
创建<code>VisibilityRequirement</code>的新子类并取一个合适的名字。


接下来我将我的演示类命名为<code>ExampleVisibilityRequirementWithValue</code>
接下来我将我的演示类命名为<code>ExampleVisibilityRequirementWithValue</code>


有一些重要的点需要留意
有一些重要的点需要留意。


构造函数(Constructor)
==== 构造函数(Constructor) ====
构造函数用标识符独一无二
构造函数用标识符独一无二
<syntaxhighlight lang="java">
public ExampleVisibilityRequirementWithValue() {
public ExampleVisibilityRequirementWithValue() {
     //The identifier needs to be unique! It's not possible to register multiple requirements with the same identifier!
     //The identifier needs to be unique! It's not possible to register multiple requirements with the same identifier!
第247行: 第258行:
     super("example_requirement_with_value");
     super("example_requirement_with_value");
}
}
复制代码
</syntaxhighlight>
==== hasValue() ====
这个方法用于返回 Requirements 是否需要值。


hasValue()
这个方法用于返回 Requirements 是否需要值。
因为我们想给这个 Requirements 使用值,所以返回true。
因为我们想给这个 Requirements 使用值,所以返回true。
<syntaxhighlight lang="java">
@Override
@Override
public boolean hasValue() {
public boolean hasValue() {
第258行: 第270行:
     return true;
     return true;
}
}
复制代码
</syntaxhighlight>


isRequirementMet()
==== isRequirementMet() ====
这是你的 Requirements 的最重要的方法。
这是你的 Requirements 的最重要的方法。
这里用于返回是否满足在此要求中检查的条件。
这里用于返回是否满足在此要求中检查的条件。
这个方法有 Requirements 的值作为参数,所以你可以使用它检查是否满足 Requirements 。
这个方法有 Requirements 的值作为参数,所以你可以使用它检查是否满足 Requirements 。
<syntaxhighlight lang="java">
//Here you return if the requirement is met (using the given requirement value if the requirement has one).
//Here you return if the requirement is met (using the given requirement value if the requirement has one).
//在这里返回是否满足 Requirements (如果 Requirements 有值则返回 Requirements 的值)
//在这里返回是否满足 Requirements (如果 Requirements 有值则返回 Requirements 的值)
第281行: 第296行:


}
}
复制代码
</syntaxhighlight>


getDisplayName()
==== getDisplayName() ====
此方法返回 Requirements 显示名。
此方法返回 Requirements 显示名。
这个显示名会在布局编辑器的Visibility Requirements选项显示。
这个显示名会在布局编辑器的Visibility Requirements选项显示。
<syntaxhighlight lang="java">
//This is the display name of the requirement.
//This is the display name of the requirement.
//这个是 Requirements 的显示名。
//这个是 Requirements 的显示名。
第294行: 第311行:
     return "Example Requirement [With Value]";
     return "Example Requirement [With Value]";
}
}
复制代码
</syntaxhighlight>


getDescription()
==== getDescription() ====
返回 Requirements 的描述。
返回 Requirements 的描述。
当把鼠标悬停在切换 Requirements 按钮上时,该描述会作为工具提示显示。
当把鼠标悬停在切换 Requirements 按钮上时,该描述会作为工具提示显示。
<syntaxhighlight lang="java">
//This is the description of the requirement.
//This is the description of the requirement.
//这里是 Requirements 的描述
//这里是 Requirements 的描述
第309行: 第328行:
     return l;
     return l;
}
}
复制代码
</syntaxhighlight>
 
==== getValueDisplayName() ====
getValueDisplayName()
这个方法返回值的显示名。
这个方法返回值的显示名。
<syntaxhighlight lang="java">
//This is the display name of the VALUE of the requirement.
//This is the display name of the VALUE of the requirement.
//这是 Requirements 的值的显示名。
//这是 Requirements 的值的显示名。
第321行: 第340行:
     return "Example Value Name";
     return "Example Value Name";
}
}
复制代码
</syntaxhighlight>
==== getValuePreset() ====
如果没有真实的值,则返回自动设置到输入文本字段的内容。


getValuePreset()
如果没有真实的值,则返回自动设置到输入文本字段的内容。
最好给用户展示真实值的样例。
最好给用户展示真实值的样例。
<syntaxhighlight lang="java">
//This is the content that will be automatically set to the value input field when there is no value already.
//This is the content that will be automatically set to the value input field when there is no value already.
//在已经没有值的情况下将自动设置到值输入栏的内容。
//在已经没有值的情况下将自动设置到值输入栏的内容。
第332行: 第352行:
     return "cool value preset";
     return "cool value preset";
}
}
复制代码
</syntaxhighlight>
==== getValueInputFieldFilter() ====
该方法返回一个字符过滤器,该过滤器被用来检查用户可以在数值输入文本字段中允许输入的字符。


getValueInputFieldFilter()
如果你想允许所有字符,那直接返回<code>null</code>。
该方法返回一个字符过滤器,该过滤器被用来检查用户可以在数值输入文本字段中允许输入的字符。
<syntaxhighlight lang="java">
如果你想允许所有字符,那直接返回null。
//The character filter of the value input field. Return NULL if you want to allow all characters.
//The character filter of the value input field. Return NULL if you want to allow all characters.
//值输入字段字符过滤器,返回null允许所有字符。
//值输入字段字符过滤器,返回null允许所有字符。
第345行: 第366行:
     return null;
     return null;
}
}
2.3.9. Full Example Class
</syntaxhighlight>
This is a full working VisibilityRequirement example.
====完整示例====
 
这是完整的VisibilityRequirement示例。
<syntaxhighlight lang="java">
package de.keksuccino.fancymenu.api.visibilityrequirements.example;
package de.keksuccino.fancymenu.api.visibilityrequirements.example;


第437行: 第459行:


}
}
复制代码
</syntaxhighlight>
==== 注册Visibility Requirement ====
你弟任务!完成啦!啊哈哈哈哈哈哈哈哈哈哈哈哈!


注册Visibility Requirement
<code>VisibilityRequirement</code>:<code>VisibilityRequirementRegistry</code>先生,Java陛下,我们在天堂(游戏加载)见!
你弟任务!完成啦!啊哈哈哈哈哈哈哈哈哈哈哈哈
<syntaxhighlight lang="java">
VisibilityRequirement:VisibilityRequirementRegistry先生,Java陛下,我们在天堂(游戏加载)见!
package de.keksuccino.fancymenu;
package de.keksuccino.fancymenu;


第463行: 第486行:


}
}
复制代码
</syntaxhighlight>
[[分类:FancyMenu]]
183

个编辑