mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-02-08 11:06:41 +01:00
Create files from Grasscutter-Quests
these files are NOT directly compatible with Grasscutter, and require additional modifications to the codebase to work.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
//import emu.grasscutter.scripts.constants.IntValueEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
public enum RotAngleType /*implements IntValueEnum */{
|
||||
ROT_NONE(-1),
|
||||
ROT_ANGLE_X(0),
|
||||
ROT_ANGLE_Y(1),
|
||||
ROT_ANGLE_Z(2);
|
||||
|
||||
@Getter
|
||||
private final int id;
|
||||
|
||||
RotAngleType(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
//@Override
|
||||
public int getValue() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
public enum RotType {
|
||||
ROT_NONE,
|
||||
ROT_ANGLE,
|
||||
ROT_ROUND
|
||||
}
|
||||
31
src/main/java/emu/grasscutter/data/binout/routes/Route.java
Normal file
31
src/main/java/emu/grasscutter/data/binout/routes/Route.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
import emu.grasscutter.net.proto.RouteOuterClass;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import lombok.val;
|
||||
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class Route {
|
||||
private int localId;
|
||||
private String name;
|
||||
private RouteType type = RouteType.Unknown;
|
||||
private RoutePoint[] points;
|
||||
private float arriveRange; // optional
|
||||
private RotType rotType; // optional
|
||||
private RotAngleType rotAngleType; // optional
|
||||
|
||||
public RouteOuterClass.Route toProto(){
|
||||
val builder = RouteOuterClass.Route.newBuilder()
|
||||
.setRouteType(type.getValue());
|
||||
if(points !=null){
|
||||
for(var routePoint : points){
|
||||
builder.addRoutePoints(routePoint.toProto()
|
||||
.setArriveRange(arriveRange));
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
import emu.grasscutter.net.proto.RoutePointOuterClass;
|
||||
import emu.grasscutter.utils.Position;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import lombok.val;
|
||||
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class RoutePoint {
|
||||
private Position pos;
|
||||
private int speedLevel; //optional
|
||||
private float waitTime; //optional
|
||||
private float targetVelocity; //optional
|
||||
private boolean hasReachEvent; //optional
|
||||
// rotRoundReachDir //optional Pos with optional values
|
||||
// rotRoundLeaveDir //optional Pos with optional values
|
||||
|
||||
public RoutePointOuterClass.RoutePoint.Builder toProto(){
|
||||
val builder = RoutePointOuterClass.RoutePoint.newBuilder()
|
||||
.setPosition(pos.toProto());
|
||||
if(waitTime!=0){
|
||||
builder.setTime(waitTime);
|
||||
} else if(targetVelocity!=0){
|
||||
builder.setVelocity(targetVelocity);
|
||||
}
|
||||
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
//import emu.grasscutter.scripts.constants.IntValueEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
public enum RouteType /*implements IntValueEnum*/ {
|
||||
Unknown(-1),
|
||||
OneWay(0),
|
||||
Reciprocate(1),
|
||||
Loop(2);
|
||||
|
||||
@Getter
|
||||
private final int id;
|
||||
|
||||
RouteType(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
//@Override
|
||||
public int getValue() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package emu.grasscutter.data.binout.routes;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class SceneRoutes {
|
||||
private int sceneId;
|
||||
@Nullable private Route[] routes;
|
||||
}
|
||||
Reference in New Issue
Block a user