📄 edict_t.java
字号:
if (key.equals("health")) { health = Lib.atoi(value); return true; } // F_INT), if (key.equals("sounds")) { sounds = Lib.atoi(value); return true; } // F_INT), if (key.equals("light")) { return true; } // F_IGNORE), if (key.equals("dmg")) { dmg = Lib.atoi(value); return true; } // F_INT), if (key.equals("mass")) { mass = Lib.atoi(value); return true; } // F_INT), if (key.equals("volume")) { volume = Lib.atof(value); return true; } // F_FLOAT), if (key.equals("attenuation")) { attenuation = Lib.atof(value); return true; } // F_FLOAT), if (key.equals("map")) { map = GameSpawn.ED_NewString(value); return true; } // F_LSTRING), if (key.equals("origin")) { s.origin = Lib.atov(value); return true; } // F_VECTOR), if (key.equals("angles")) { s.angles = Lib.atov(value); return true; } // F_VECTOR), if (key.equals("angle")) { s.angles = new float[] { 0, Lib.atof(value), 0 }; return true; } // F_ANGLEHACK), if (key.equals("item")) { GameBase.gi.error("ent.set(\"item\") called."); return true; } // F_ITEM) return false; } /** Writes the entity to the file. */ public void write(QuakeFile f) throws IOException { s.write(f); f.writeBoolean(inuse); f.writeInt(linkcount); f.writeInt(num_clusters); f.writeInt(9999); if (clusternums == null) f.writeInt(-1); else { f.writeInt(Defines.MAX_ENT_CLUSTERS); for (int n = 0; n < Defines.MAX_ENT_CLUSTERS; n++) f.writeInt(clusternums[n]); } f.writeInt(headnode); f.writeInt(areanum); f.writeInt(areanum2); f.writeInt(svflags); f.writeVector(mins); f.writeVector(maxs); f.writeVector(absmin); f.writeVector(absmax); f.writeVector(size); f.writeInt(solid); f.writeInt(clipmask); f.writeInt(movetype); f.writeInt(flags); f.writeString(model); f.writeFloat(freetime); f.writeString(message); f.writeString(classname); f.writeInt(spawnflags); f.writeFloat(timestamp); f.writeFloat(angle); f.writeString(target); f.writeString(targetname); f.writeString(killtarget); f.writeString(team); f.writeString(pathtarget); f.writeString(deathtarget); f.writeString(combattarget); f.writeEdictRef(target_ent); f.writeFloat(speed); f.writeFloat(accel); f.writeFloat(decel); f.writeVector(movedir); f.writeVector(pos1); f.writeVector(pos2); f.writeVector(velocity); f.writeVector(avelocity); f.writeInt(mass); f.writeFloat(air_finished); f.writeFloat(gravity); f.writeEdictRef(goalentity); f.writeEdictRef(movetarget); f.writeFloat(yaw_speed); f.writeFloat(ideal_yaw); f.writeFloat(nextthink); f.writeAdapter(prethink); f.writeAdapter(think); f.writeAdapter(blocked); f.writeAdapter(touch); f.writeAdapter(use); f.writeAdapter(pain); f.writeAdapter(die); f.writeFloat(touch_debounce_time); f.writeFloat(pain_debounce_time); f.writeFloat(damage_debounce_time); f.writeFloat(fly_sound_debounce_time); f.writeFloat(last_move_time); f.writeInt(health); f.writeInt(max_health); f.writeInt(gib_health); f.writeInt(deadflag); f.writeInt(show_hostile); f.writeFloat(powerarmor_time); f.writeString(map); f.writeInt(viewheight); f.writeInt(takedamage); f.writeInt(dmg); f.writeInt(radius_dmg); f.writeFloat(dmg_radius); f.writeInt(sounds); f.writeInt(count); f.writeEdictRef(chain); f.writeEdictRef(enemy); f.writeEdictRef(oldenemy); f.writeEdictRef(activator); f.writeEdictRef(groundentity); f.writeInt(groundentity_linkcount); f.writeEdictRef(teamchain); f.writeEdictRef(teammaster); f.writeEdictRef(mynoise); f.writeEdictRef(mynoise2); f.writeInt(noise_index); f.writeInt(noise_index2); f.writeFloat(volume); f.writeFloat(attenuation); f.writeFloat(wait); f.writeFloat(delay); f.writeFloat(random); f.writeFloat(teleport_time); f.writeInt(watertype); f.writeInt(waterlevel); f.writeVector(move_origin); f.writeVector(move_angles); f.writeInt(light_level); f.writeInt(style); f.writeItem(item); moveinfo.write(f); monsterinfo.write(f); if (client == null) f.writeInt(-1); else f.writeInt(client.index); f.writeEdictRef(owner); // rst's checker :-) f.writeInt(9876); } /** Reads the entity from the file. */ public void read(QuakeFile f) throws IOException { s.read(f); inuse = f.readBoolean(); linkcount = f.readInt(); num_clusters = f.readInt(); if (f.readInt() != 9999) new Throwable("wrong read pos!").printStackTrace(); int len = f.readInt(); if (len == -1) clusternums = null; else { clusternums = new int[Defines.MAX_ENT_CLUSTERS]; for (int n = 0; n < Defines.MAX_ENT_CLUSTERS; n++) clusternums[n] = f.readInt(); } headnode = f.readInt(); areanum = f.readInt(); areanum2 = f.readInt(); svflags = f.readInt(); mins = f.readVector(); maxs = f.readVector(); absmin = f.readVector(); absmax = f.readVector(); size = f.readVector(); solid = f.readInt(); clipmask = f.readInt(); movetype = f.readInt(); flags = f.readInt(); model = f.readString(); freetime = f.readFloat(); message = f.readString(); classname = f.readString(); spawnflags = f.readInt(); timestamp = f.readFloat(); angle = f.readFloat(); target = f.readString(); targetname = f.readString(); killtarget = f.readString(); team = f.readString(); pathtarget = f.readString(); deathtarget = f.readString(); combattarget = f.readString(); target_ent = f.readEdictRef(); speed = f.readFloat(); accel = f.readFloat(); decel = f.readFloat(); movedir = f.readVector(); pos1 = f.readVector(); pos2 = f.readVector(); velocity = f.readVector(); avelocity = f.readVector(); mass = f.readInt(); air_finished = f.readFloat(); gravity = f.readFloat(); goalentity = f.readEdictRef(); movetarget = f.readEdictRef(); yaw_speed = f.readFloat(); ideal_yaw = f.readFloat(); nextthink = f.readFloat(); prethink = (EntThinkAdapter) f.readAdapter(); think = (EntThinkAdapter) f.readAdapter(); blocked = (EntBlockedAdapter) f.readAdapter(); touch = (EntTouchAdapter) f.readAdapter(); use = (EntUseAdapter) f.readAdapter(); pain = (EntPainAdapter) f.readAdapter(); die = (EntDieAdapter) f.readAdapter(); touch_debounce_time = f.readFloat(); pain_debounce_time = f.readFloat(); damage_debounce_time = f.readFloat(); fly_sound_debounce_time = f.readFloat(); last_move_time = f.readFloat(); health = f.readInt(); max_health = f.readInt(); gib_health = f.readInt(); deadflag = f.readInt(); show_hostile = f.readInt(); powerarmor_time = f.readFloat(); map = f.readString(); viewheight = f.readInt(); takedamage = f.readInt(); dmg = f.readInt(); radius_dmg = f.readInt(); dmg_radius = f.readFloat(); sounds = f.readInt(); count = f.readInt(); chain = f.readEdictRef(); enemy = f.readEdictRef(); oldenemy = f.readEdictRef(); activator = f.readEdictRef(); groundentity = f.readEdictRef(); groundentity_linkcount = f.readInt(); teamchain = f.readEdictRef(); teammaster = f.readEdictRef(); mynoise = f.readEdictRef(); mynoise2 = f.readEdictRef(); noise_index = f.readInt(); noise_index2 = f.readInt(); volume = f.readFloat(); attenuation = f.readFloat(); wait = f.readFloat(); delay = f.readFloat(); random = f.readFloat(); teleport_time = f.readFloat(); watertype = f.readInt(); waterlevel = f.readInt(); move_origin = f.readVector(); move_angles = f.readVector(); light_level = f.readInt(); style = f.readInt(); item = f.readItem(); moveinfo.read(f); monsterinfo.read(f); int ndx = f.readInt(); if (ndx == -1) client = null; else client = GameBase.game.clients[ndx]; owner = f.readEdictRef(); // rst's checker :-) if (f.readInt() != 9876) System.err.println("ent load check failed for num " + index); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -