// Path: core/src/main/java/org/mini2Dx/miniscript/core/ScriptInvocationListener.java
// public interface ScriptInvocationListener {
// 	/**
// 	 * Called just before a script begins execution. Note: If callOnGameThread() is true,
// 	 * the script will not begin until this callback is processed on the game thread
// 	 * @param scriptId The script id
// 	 */
// 	public default void onScriptBegin(int scriptId) {
// 
// 	}
// 
// 	/**
// 	 * Called when a script is cancelled while in the invoke queue.
// 	 *
// 	 * @param scriptId The script id
// 	 */
// 	public default void onScriptCancelled(int scriptId) {
// 	}
// 
// 	/**
// 	 * Called when a script successfully completes
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 * @param executionResult
// 	 *            The variable bindings after execution
// 	 */
// 	public void onScriptSuccess(int scriptId, ScriptExecutionResult executionResult);
// 
// 	/**
// 	 * Called when a script is skipped during execution
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 */
// 	public void onScriptSkipped(int scriptId);
// 
// 	/**
// 	 * Called when an exception occurs during script execution
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 * @param e
// 	 *            The exception that occurred
// 	 */
// 	public void onScriptException(int scriptId, Exception e);
// 
// 	/**
// 	 * Returns if this {@link ScriptInvocationListener} should be notified on
// 	 * the game thread
// 	 * 
// 	 * @return False if this should be notified on the
// 	 *         {@link GameScriptingEngine} thread pool
// 	 */
// 	public boolean callOnGameThread();
// }


import org.mini2Dx.miniscript.core.ScriptInvocationListener;
import java.util.concurrent.atomic.AtomicBoolean;
/**
 * Copyright 2021 Viridian Software Ltd.
 */
package org.mini2Dx.miniscript.core.notification;



public class ScriptBeginNotification implements ScriptNotification {
	private final AtomicBoolean processed = new AtomicBoolean(false);
// Path: core/src/main/java/org/mini2Dx/miniscript/core/ScriptInvocationListener.java
// public interface ScriptInvocationListener {
// 	/**
// 	 * Called just before a script begins execution. Note: If callOnGameThread() is true,
// 	 * the script will not begin until this callback is processed on the game thread
// 	 * @param scriptId The script id
// 	 */
// 	public default void onScriptBegin(int scriptId) {
// 
// 	}
// 
// 	/**
// 	 * Called when a script is cancelled while in the invoke queue.
// 	 *
// 	 * @param scriptId The script id
// 	 */
// 	public default void onScriptCancelled(int scriptId) {
// 	}
// 
// 	/**
// 	 * Called when a script successfully completes
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 * @param executionResult
// 	 *            The variable bindings after execution
// 	 */
// 	public void onScriptSuccess(int scriptId, ScriptExecutionResult executionResult);
// 
// 	/**
// 	 * Called when a script is skipped during execution
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 */
// 	public void onScriptSkipped(int scriptId);
// 
// 	/**
// 	 * Called when an exception occurs during script execution
// 	 * 
// 	 * @param scriptId
// 	 *            The script id
// 	 * @param e
// 	 *            The exception that occurred
// 	 */
// 	public void onScriptException(int scriptId, Exception e);
// 
// 	/**
// 	 * Returns if this {@link ScriptInvocationListener} should be notified on
// 	 * the game thread
// 	 * 
// 	 * @return False if this should be notified on the
// 	 *         {@link GameScriptingEngine} thread pool
// 	 */
// 	public boolean callOnGameThread();
// }


// Path: core/src/main/java/org/mini2Dx/miniscript/core/notification/ScriptBeginNotification.java
import org.mini2Dx.miniscript.core.ScriptInvocationListener;
import java.util.concurrent.atomic.AtomicBoolean;

/**
 * Copyright 2021 Viridian Software Ltd.
 */
package org.mini2Dx.miniscript.core.notification;



public class ScriptBeginNotification implements ScriptNotification {
	private final AtomicBoolean processed = new AtomicBoolean(false);
	private final ScriptInvocationListener invocationListener;