clockwerk-opensim – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 /*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27  
28 using System;
29  
30 namespace pCampBot.Interfaces
31 {
32 public interface IBehaviour
33 {
34 /// <summary>
35 /// Abbreviated name of this behaviour.
36 /// </summary>
37 string AbbreviatedName { get; }
38  
39 /// <summary>
40 /// Name of this behaviour.
41 /// </summary>
42 string Name { get; }
43  
44 /// <summary>
45 /// Initialize the behaviour for this bot.
46 /// </summary>
47 /// <remarks>
48 /// This must be invoked before Action() is called.
49 /// </remarks>
50 /// <param name="bot"></param>
51 void Initialize(Bot bot);
52  
53 /// <summary>
54 /// Interrupt the behaviour.
55 /// </summary>
56 /// <remarks>
57 /// This should cause the current Action call() to terminate if this is active.
58 /// </remarks>
59 void Interrupt();
60  
61 /// <summary>
62 /// Close down this behaviour.
63 /// </summary>
64 /// <remarks>
65 /// This is triggered if a behaviour is removed via explicit command and when a bot is disconnected
66 /// </remarks>
67 void Close();
68  
69 /// <summary>
70 /// Action to take when this behaviour is invoked.
71 /// </summary>
72 /// <param name="bot"></param>
73 void Action();
74 }
75 }