下面列出了怎么用net.minecraftforge.common.animation.ITimeValue的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Load a new instance of HarvesterAnimationStateMachine at specified location,
* with specified custom parameters.
*/
@SideOnly(Side.CLIENT)
public static HarvesterAnimationStateMachine load(IResourceManager manager, ResourceLocation location,
ImmutableMap<String, ITimeValue> customParameters) {
try (IResource resource = manager.getResource(location)) {
ClipResolver clipResolver = new ClipResolver();
ParameterResolver parameterResolver = new ParameterResolver(customParameters);
Clips.CommonClipTypeAdapterFactory.INSTANCE.setClipResolver(clipResolver);
TimeValues.CommonTimeValueTypeAdapterFactory.INSTANCE.setValueResolver(parameterResolver);
HarvesterAnimationStateMachine asm = asmGson.fromJson(
new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8),
HarvesterAnimationStateMachine.class);
clipResolver.asm = asm;
parameterResolver.asm = asm;
asm.initialize();
return asm;
} catch (IOException | JsonParseException e) {
FMLLog.log.error("Exception loading Animation State Machine {}, skipping", location, e);
return missing;
} finally {
Clips.CommonClipTypeAdapterFactory.INSTANCE.setClipResolver(null);
TimeValues.CommonTimeValueTypeAdapterFactory.INSTANCE.setValueResolver(null);
}
}
@Deprecated
public HarvesterAnimationStateMachine(ImmutableMap<String, ITimeValue> parameters,
ImmutableMap<String, IClip> clips, ImmutableList<String> states, ImmutableMap<String, String> transitions,
String startState) {
this(parameters, clips, states, ImmutableMultimap.copyOf(
Multimaps.newSetMultimap(Maps.transformValues(transitions, ImmutableSet::of), Sets::newHashSet)),
startState);
}
public HarvesterAnimationStateMachine(ImmutableMap<String, ITimeValue> parameters,
ImmutableMap<String, IClip> clips, ImmutableList<String> states,
ImmutableMultimap<String, String> transitions, String startState) {
this.parameters = parameters;
this.clips = clips;
this.states = states;
this.transitions = transitions;
this.startState = startState;
}
@Override
public ITimeValue apply(String name) {
if (asm.parameters.containsKey(name)) {
return asm.parameters.get(name);
}
return customParameters.get(name);
}
@SideOnly(Side.CLIENT)
public static HarvesterAnimationStateMachine loadHarvesterASM(ResourceLocation location, ImmutableMap<String, ITimeValue> customParameters) {
IResourceManager manager = Minecraft.getMinecraft().getResourceManager();
return HarvesterAnimationStateMachine.load(manager, location, customParameters);
}
public ParameterResolver(ImmutableMap<String, ITimeValue> customParameters) {
this.customParameters = customParameters;
}
@Override
public IAnimationStateMachine load(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters) {
return ModelLoaderRegistry.loadASM(location, parameters);
}
@Nullable
public IAnimationStateMachine load(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters) {
return null;
}
@Override
public IAnimationStateMachine loadAsm(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters) {
return ModelLoaderRegistry.loadASM(location, parameters);
}
@Override
public IAnimationStateMachine loadAsm(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters) {
return null;
}
public IAnimationStateMachine loadAsm(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters);