mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-23 19:26:49 +00:00
Cleanup and remove business_type filter
This commit is contained in:
parent
9902ba381a
commit
2e24d77bc2
@ -531,14 +531,14 @@ public class Scene {
|
|||||||
public List<SceneGroup> playerMeetGroups(Player player, SceneBlock block){
|
public List<SceneGroup> playerMeetGroups(Player player, SceneBlock block){
|
||||||
int RANGE = 100;
|
int RANGE = 100;
|
||||||
|
|
||||||
var sceneGroups = SceneIndexManager.queryNeighbors(block.sceneGroupIndex, player.getPos(), RANGE);
|
List<SceneGroup> sceneGroups = SceneIndexManager.queryNeighbors(block.sceneGroupIndex, player.getPos(), RANGE);
|
||||||
|
|
||||||
var groups = new ArrayList<>(sceneGroups.stream()
|
List<SceneGroup> groups = sceneGroups.stream()
|
||||||
.filter(group -> !scriptManager.getLoadedGroupSetPerBlock().get(block.id).contains(group) && group.getBusinessType() == 0)
|
.filter(group -> !scriptManager.getLoadedGroupSetPerBlock().get(block.id).contains(group))
|
||||||
.peek(group -> scriptManager.getLoadedGroupSetPerBlock().get(block.id).add(group))
|
.peek(group -> scriptManager.getLoadedGroupSetPerBlock().get(block.id).add(group))
|
||||||
.toList());
|
.toList();
|
||||||
|
|
||||||
if(groups.size() == 0){
|
if (groups.size() == 0) {
|
||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,6 +353,9 @@ public class SceneScriptManager {
|
|||||||
entity.setState(g.state);
|
entity.setState(g.state);
|
||||||
entity.setPointType(g.point_type);
|
entity.setPointType(g.point_type);
|
||||||
entity.buildContent();
|
entity.buildContent();
|
||||||
|
|
||||||
|
// Lua event
|
||||||
|
this.callEvent(EventType.EVENT_GADGET_CREATE, new ScriptArgs(entity.getConfigId()));
|
||||||
|
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
@ -390,32 +393,23 @@ public class SceneScriptManager {
|
|||||||
|
|
||||||
this.getScriptMonsterSpawnService()
|
this.getScriptMonsterSpawnService()
|
||||||
.onMonsterCreatedListener.forEach(action -> action.onNotify(entity));
|
.onMonsterCreatedListener.forEach(action -> action.onNotify(entity));
|
||||||
|
|
||||||
|
// Lua event
|
||||||
|
callEvent(EventType.EVENT_ANY_MONSTER_LIVE, new ScriptArgs(entity.getConfigId()));
|
||||||
|
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addEntity(GameEntity gameEntity){
|
public void addEntity(GameEntity gameEntity){
|
||||||
getScene().addEntity(gameEntity);
|
getScene().addEntity(gameEntity);
|
||||||
callCreateEvent(gameEntity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void meetEntities(List<? extends GameEntity> gameEntity){
|
public void meetEntities(List<? extends GameEntity> gameEntity){
|
||||||
getScene().addEntities(gameEntity, VisionTypeOuterClass.VisionType.VISION_MEET);
|
getScene().addEntities(gameEntity, VisionTypeOuterClass.VisionType.VISION_MEET);
|
||||||
gameEntity.forEach(this::callCreateEvent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addEntities(List<? extends GameEntity> gameEntity){
|
public void addEntities(List<? extends GameEntity> gameEntity){
|
||||||
getScene().addEntities(gameEntity);
|
getScene().addEntities(gameEntity);
|
||||||
gameEntity.forEach(this::callCreateEvent);
|
|
||||||
}
|
|
||||||
public void callCreateEvent(GameEntity gameEntity){
|
|
||||||
if(!isInit){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(gameEntity instanceof EntityMonster entityMonster){
|
|
||||||
callEvent(EventType.EVENT_ANY_MONSTER_LIVE, new ScriptArgs(entityMonster.getConfigId()));
|
|
||||||
}
|
|
||||||
if(gameEntity instanceof EntityGadget entityGadget){
|
|
||||||
this.callEvent(EventType.EVENT_GADGET_CREATE, new ScriptArgs(entityGadget.getConfigId()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhTree<SceneBlock> getBlocksIndex() {
|
public PhTree<SceneBlock> getBlocksIndex() {
|
||||||
|
@ -376,11 +376,14 @@ public class ScriptLib {
|
|||||||
var configId = table.get("config_id").toint();
|
var configId = table.get("config_id").toint();
|
||||||
|
|
||||||
var group = getCurrentGroup();
|
var group = getCurrentGroup();
|
||||||
if(group.isEmpty()){
|
|
||||||
|
if (group.isEmpty()) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var gadget = group.get().gadgets.get(configId);
|
var gadget = group.get().gadgets.get(configId);
|
||||||
var entity = getSceneScriptManager().createGadget(group.get().id, group.get().block_id, gadget);
|
var entity = getSceneScriptManager().createGadget(group.get().id, group.get().block_id, gadget);
|
||||||
|
|
||||||
getSceneScriptManager().addEntity(entity);
|
getSceneScriptManager().addEntity(entity);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user