Skip to content

Commit 4591eb3

Browse files
author
Evan Hu
committed
v3.2.0
1 parent 5fc3329 commit 4591eb3

File tree

225 files changed

+4110
-4444
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+4110
-4444
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>info.xiaomo</groupId>
88
<artifactId>g-engine</artifactId>
9-
<version>3.1.4</version>
9+
<version>3.2.0</version>
1010

1111
<properties>
1212
<maven.compiler.source>1.8</maven.compiler.source>

src/main/java/info/xiaomo/gengine/ai/btree/BehaviorTreeManager.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
import info.xiaomo.gengine.ai.btree.branch.*;
1212
import info.xiaomo.gengine.ai.btree.decorator.Random;
1313
import info.xiaomo.gengine.ai.btree.decorator.*;
14-
import info.xiaomo.gengine.common.math.Vector3;
15-
import info.xiaomo.gengine.common.utils.Args;
16-
import info.xiaomo.gengine.common.utils.FileUtil;
17-
import info.xiaomo.gengine.common.utils.ReflectUtil;
18-
import info.xiaomo.gengine.common.utils.StringUtil;
19-
import info.xiaomo.gengine.struct.Person;
14+
import info.xiaomo.gengine.math.Vector3;
15+
import info.xiaomo.gengine.utils.Args;
16+
import info.xiaomo.gengine.utils.FileUtil;
17+
import info.xiaomo.gengine.utils.ReflectUtil;
18+
import info.xiaomo.gengine.utils.StringUtil;
19+
import info.xiaomo.gengine.entity.AbsPerson;
2020
import org.dom4j.Attribute;
2121
import org.dom4j.Document;
2222
import org.dom4j.DocumentHelper;
@@ -37,7 +37,7 @@ public class BehaviorTreeManager {
3737
/**
3838
* 行为树对象缓存
3939
*/
40-
private final Map<String, BehaviorTree<? extends Person>> behaviorTrees = new HashMap<>();
40+
private final Map<String, BehaviorTree<? extends AbsPerson>> behaviorTrees = new HashMap<>();
4141

4242
private BehaviorTreeManager() {
4343

@@ -71,7 +71,7 @@ public void parseBehaviorTree(String path) {
7171
for (File file : files) {
7272
if (file.exists()) {
7373
// 加载行为树
74-
Args.Two<String, BehaviorTree<? extends Person>> tree = createBehaviorTree(file);
74+
Args.Two<String, BehaviorTree<? extends AbsPerson>> tree = createBehaviorTree(file);
7575
behaviorTrees.put(tree.a(), tree.b());
7676
// LOGGER.debug("行为树{} 加入容器", tree.a());
7777
}
@@ -89,7 +89,7 @@ public void parseBehaviorTree(String path) {
8989
* @param file
9090
* @return
9191
*/
92-
private Args.Two<String, BehaviorTree<? extends Person>> createBehaviorTree(File file) throws Exception {
92+
private Args.Two<String, BehaviorTree<? extends AbsPerson>> createBehaviorTree(File file) throws Exception {
9393
String xmlStr = FileUtil.readTxtFile(file.getPath());
9494
Document document = DocumentHelper.parseText(Objects.requireNonNull(xmlStr));
9595
Element rootElement = document.getRootElement(); // 根节点
@@ -111,11 +111,11 @@ private Args.Two<String, BehaviorTree<? extends Person>> createBehaviorTree(File
111111
// 行为树xml根节点
112112
Element rootTaskElement = (Element) treeRootElements.get(0);
113113
// 行为树根任务
114-
Task<Person> rootTask = createTask(rootTaskElement);
114+
Task<AbsPerson> rootTask = createTask(rootTaskElement);
115115
// 递归设置分支节点和叶子节点
116116
addTask(rootTaskElement, rootTask);
117117

118-
BehaviorTree<? extends Person> behaviorTree = new BehaviorTree<>(rootTask);
118+
BehaviorTree<? extends AbsPerson> behaviorTree = new BehaviorTree<>(rootTask);
119119
return Args.of(id, behaviorTree);
120120
}
121121

@@ -125,11 +125,11 @@ private Args.Two<String, BehaviorTree<? extends Person>> createBehaviorTree(File
125125
* @param element xml配置节点
126126
* @param task 父任务
127127
*/
128-
private void addTask(Element element, Task<Person> task) {
128+
private void addTask(Element element, Task<AbsPerson> task) {
129129
Iterator<Element> iterator = element.elementIterator();
130130
while (iterator.hasNext()) {
131131
Element secondElement = iterator.next();
132-
Task<Person> secondTask = createTask(secondElement);
132+
Task<AbsPerson> secondTask = createTask(secondElement);
133133
if (secondElement.getName().equalsIgnoreCase(XML_GUARD)) {
134134
task.setGuard(secondTask);
135135
} else {
@@ -147,11 +147,11 @@ private void addTask(Element element, Task<Person> task) {
147147
* @param element
148148
* @return
149149
*/
150-
private Task<Person> createTask(Element element) {
150+
private Task<AbsPerson> createTask(Element element) {
151151
if (element == null) {
152152
throw new RuntimeException("传入行为数节点为空");
153153
}
154-
Task<Person> task;
154+
Task<AbsPerson> task;
155155

156156
switch (element.getName()) {
157157
case XML_SELECTOR:
@@ -250,18 +250,18 @@ private Task<Person> createTask(Element element) {
250250
* @return
251251
*/
252252
@SuppressWarnings({"unchecked",})
253-
private LeafTask<Person> createLeafTask(Element element) {
253+
private LeafTask<AbsPerson> createLeafTask(Element element) {
254254
Attribute leafAttr = element.attribute(XML_ATTRIBUTE_CLASS);
255255
if (leafAttr == null) {
256256
throw new IllegalStateException(
257257
String.format("xml %s %s节点 未配置class属性", element.getUniquePath(), element.getName()));
258258
}
259259
String classStr = leafAttr.getValue();
260-
LeafTask<Person> leafTask = null;
260+
LeafTask<AbsPerson> leafTask = null;
261261
Class<?> leafTaskClass;
262262
try {
263263
leafTaskClass = Class.forName(classStr);
264-
leafTask = (LeafTask<Person>) leafTaskClass.newInstance();
264+
leafTask = (LeafTask<AbsPerson>) leafTaskClass.newInstance();
265265

266266
// 设置属性
267267
if (element.attributeCount() < 2) { // 没有设置属性参数
@@ -326,13 +326,13 @@ private LeafTask<Person> createLeafTask(Element element) {
326326
* @return
327327
*/
328328
@SuppressWarnings("unchecked")
329-
public BehaviorTree<? extends Person> cloneBehaviorTree(String id) {
330-
BehaviorTree<? extends Person> behaviorTree = behaviorTrees.get(id);
329+
public BehaviorTree<? extends AbsPerson> cloneBehaviorTree(String id) {
330+
BehaviorTree<? extends AbsPerson> behaviorTree = behaviorTrees.get(id);
331331
if (behaviorTree == null) {
332332
return null;
333333
}
334334
try {
335-
return (BehaviorTree<Person>) ReflectUtil.deepCopy(behaviorTree);
335+
return (BehaviorTree<AbsPerson>) ReflectUtil.deepCopy(behaviorTree);
336336
} catch (Exception e) {
337337
LOGGER.error("克隆行为树", e);
338338
}

src/main/java/info/xiaomo/gengine/ai/btree/IBehaviorTreeScript.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package info.xiaomo.gengine.ai.btree;
22

33
import info.xiaomo.gengine.script.IScript;
4-
import info.xiaomo.gengine.struct.Person;
4+
import info.xiaomo.gengine.entity.AbsPerson;
55

66
/**
77
* 行为树脚本
@@ -18,7 +18,7 @@ public interface IBehaviorTreeScript extends IScript {
1818
* @param person
1919
*
2020
*/
21-
default void addBehaviorTree(Person person) {
21+
default void addBehaviorTree(AbsPerson person) {
2222

2323
}
2424
}

src/main/java/info/xiaomo/gengine/ai/btree/SingleRunningChildBranch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package info.xiaomo.gengine.ai.btree;
1818

1919
import java.util.List;
20-
import info.xiaomo.gengine.common.math.MathUtil;
20+
import info.xiaomo.gengine.math.MathUtil;
2121

2222
/**
2323
* 只能运行一个子任务的分支任务<br>

src/main/java/info/xiaomo/gengine/ai/btree/Task.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.io.Serializable;
44
import info.xiaomo.gengine.ai.btree.annotation.TaskConstraint;
5-
import info.xiaomo.gengine.common.cache.IMemoryObject;
5+
import info.xiaomo.gengine.persist.cache.IMemoryObject;
66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
88

src/main/java/info/xiaomo/gengine/ai/btree/decorator/Random.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import info.xiaomo.gengine.ai.btree.Task;
2121
import info.xiaomo.gengine.ai.btree.annotation.TaskAttribute;
2222
import info.xiaomo.gengine.ai.btree.annotation.TaskConstraint;
23-
import info.xiaomo.gengine.common.math.MathUtil;
23+
import info.xiaomo.gengine.math.MathUtil;
2424

2525
/**
2626
* 结果随机<br>

src/main/java/info/xiaomo/gengine/ai/btree/leaf/Wait.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import info.xiaomo.gengine.ai.btree.LeafTask;
2020
import info.xiaomo.gengine.ai.btree.annotation.TaskAttribute;
21-
import info.xiaomo.gengine.common.utils.TimeUtil;
21+
import info.xiaomo.gengine.utils.TimeUtil;
2222

2323
/**
2424
* 等待执行指定次数<br>

src/main/java/info/xiaomo/gengine/ai/fsm/DefaultStateMachine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package info.xiaomo.gengine.ai.fsm;
22

3-
import info.xiaomo.gengine.ai.msg.Telegram;
3+
import info.xiaomo.gengine.ai.telegram.Telegram;
44

55
/**
66
* 默认状态机调度 <br>

src/main/java/info/xiaomo/gengine/ai/fsm/State.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package info.xiaomo.gengine.ai.fsm;
1818

1919

20-
import info.xiaomo.gengine.ai.msg.Telegram;
20+
import info.xiaomo.gengine.ai.telegram.Telegram;
2121

2222
/**
2323
* 状态接口<br>
Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,8 @@
1-
/*******************************************************************************
2-
* Copyright 2014 See AUTHORS file.
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
******************************************************************************/
16-
171
package info.xiaomo.gengine.ai.fsm;
182

193

20-
import info.xiaomo.gengine.ai.msg.Telegram;
21-
import info.xiaomo.gengine.ai.msg.Telegraph;
4+
import info.xiaomo.gengine.ai.telegram.Telegram;
5+
import info.xiaomo.gengine.ai.telegram.Telegraph;
226

237
/**
248
* 状态机接口<br>
@@ -38,14 +22,14 @@ public interface StateMachine<E, S extends State<E>> extends Telegraph {
3822
* global state (if any) then the {@code update} method of the current state.
3923
* </p>
4024
*/
41-
public void update();
25+
void update();
4226

4327
/**
4428
* Performs a transition to the specified state.
4529
*
4630
* @param newState the state to transition to
4731
*/
48-
public void changeState(S newState);
32+
void changeState(S newState);
4933

5034
/**
5135
* Changes the state back to the previous state.
@@ -54,19 +38,19 @@ public interface StateMachine<E, S extends State<E>> extends Telegraph {
5438
* revert to. In case there is no previous state, no state change occurs
5539
* and {@code false} will be returned.
5640
*/
57-
public boolean revertToPreviousState();
41+
boolean revertToPreviousState();
5842

5943
/**
6044
* Sets the initial state of this state machine.
6145
*
6246
* @param state the initial state.
6347
*/
64-
public void setInitialState(S state);
48+
void setInitialState(S state);
6549

6650
/**
6751
* Returns the current state of this state machine.
6852
*/
69-
public S getCurrentState();
53+
S getCurrentState();
7054

7155
/**
7256
* Returns the global state of this state machine.
@@ -76,19 +60,19 @@ public interface StateMachine<E, S extends State<E>> extends Telegraph {
7660
* {@code enter} and {@code exit} method.
7761
* </p>
7862
*/
79-
public S getGlobalState();
63+
S getGlobalState();
8064

8165
/**
8266
* Sets the global state of this state machine.
8367
*
8468
* @param state the global state.
8569
*/
86-
public void setGlobalState(S state);
70+
void setGlobalState(S state);
8771

8872
/**
8973
* Returns the last state of this state machine.
9074
*/
91-
public S getPreviousState();
75+
S getPreviousState();
9276

9377
/**
9478
* Indicates whether the state machine is in the given state.
@@ -97,7 +81,7 @@ public interface StateMachine<E, S extends State<E>> extends Telegraph {
9781
* @return true if the current state's type is equal to the type of the class
9882
* passed as a parameter.
9983
*/
100-
public boolean isInState(S state);
84+
boolean isInState(S state);
10185

10286
/**
10387
* Handles received telegrams.
@@ -110,5 +94,5 @@ public interface StateMachine<E, S extends State<E>> extends Telegraph {
11094
* @param telegram the received telegram
11195
* @return true if telegram has been successfully handled; false otherwise.
11296
*/
113-
public boolean handleMessage(Telegram telegram);
97+
boolean handleMessage(Telegram telegram);
11498
}

0 commit comments

Comments
 (0)