类net.minecraftforge.common.model.animation.IClip源码实例Demo

下面列出了怎么用net.minecraftforge.common.model.animation.IClip的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * post-loading initialization hook.
 */
void initialize() {
    if (parameters == null) {
        throw new JsonParseException("Animation State Machine should contain \"parameters\" key.");
    }
    if (clips == null) {
        throw new JsonParseException("Animation State Machine should contain \"clips\" key.");
    }
    if (states == null) {
        throw new JsonParseException("Animation State Machine should contain \"states\" key.");
    }
    if (transitions == null) {
        throw new JsonParseException("Animation State Machine should contain \"transitions\" key.");
    }
    shouldHandleSpecialEvents = true;
    lastPollTime = Float.NEGATIVE_INFINITY;
    // setting the starting state
    IClip state = clips.get(startState);
    if (!clips.containsKey(startState) || !states.contains(startState)) {
        throw new IllegalStateException("unknown state: " + startState);
    }
    currentStateName = startState;
    currentState = state;
}
 
@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 void transition(String newState) {

    IClip nc = clips.get(newState);

    if (!clips.containsKey(newState) || !states.contains(newState)) {
        throw new IllegalStateException("unknown state: " + newState);
    }
    if (!transitions.containsEntry(currentStateName, newState)) {
        throw new IllegalArgumentException("no transition from current clip \"" + currentStateName
                + "\" to the clip \"" + newState + "\" found.");
    }
    currentStateName = newState;
    currentState = nc;
}
 
源代码5 项目: VanillaFix   文件: VanillaModelWrapper.java
@Override
public Optional<? extends IClip> getClip(String name) {
    if (animation.getClips().containsKey(name)) {
        return Optional.ofNullable(animation.getClips().get(name));
    }

    return Optional.empty();
}
 
源代码6 项目: OpenModsLib   文件: EvaluatorFactory.java
private static ITransformExecutor createForClip(final IClip clip, final NumericExpr param) {
	return (initial, joint, args) -> {
		final float paramValue = param.evaluate(args);
		final TRSRTransformation clipTransform = clip.apply(joint).apply(paramValue);
		return initial.compose(clipTransform);
	};
}
 
@Override
public IClip apply(String name) {
    return asm.clips.get(name);
}
 
源代码8 项目: OpenModsLib   文件: EvaluatorFactory.java
@Override
public ITransformExecutor bind(IClipProvider provider) {
	final Optional<? extends IClip> clip = provider.get(clipName);
	Preconditions.checkState(clip.isPresent(), "Can't find clip '%s'", clipName);
	return createForClip(clip.get(), param);
}
 
源代码9 项目: OpenModsLib   文件: EvalModelTest.java
public TestClipProvider put(String key, IClip clip) {
	clips.put(key, clip);
	return this;
}
 
源代码10 项目: OpenModsLib   文件: EvalModelTest.java
@Override
public Optional<? extends IClip> get(String name) {
	return Optional.ofNullable(clips.get(name));
}
 
源代码11 项目: OpenModsLib   文件: EvalModelTest.java
private static TestClipProvider clips(String key, IClip clip) {
	return new TestClipProvider().put(key, clip);
}
 
源代码12 项目: OpenModsLib   文件: EvaluatorFactory.java
public Optional<? extends IClip> get(String name); 
 类方法
 同包方法